選擇排序法 Selection Sort會在未排序的資料列中尋找資料值最小(大)的元素,和原本資料列的第一個元素交換位置,再從剩下未排序的資料列中尋找資料值最小...
氣泡排序法(Bubble Sort)是最容易理解和實作的排序演算法,但其時間複雜度在排序法當中算是最差的一個。主要觀念是從頭開始逐一比較相鄰兩筆資料,將較大值往...
在結束介紹資料結構的部分後,我們將會進入學習一些和演算法相關的知識,今天就先來認識一下"五個"常見的演算法吧! Brute force 暴力...
在過去的14天我們介紹了許多種類的資料結構,並且大多都有搭配一個例題去作應用,不過寫到這邊也到一個段落了,在此想要強調的是資料結構和演算法在資工資管等資訊相關科...
在JavaScript ES6 的規範中,新增了 Map 這種資料結構,每組資料都有對應的 key 值(索引值)與 value 值(資料值),而且索引值可以是各...
上一篇想辦法去改善分類演算法但似乎改善幅度不高,正所謂山不轉路轉,如果分類器改善不了,那何不來改善一下資料面的問題呢? 針對資料的部分我們會用以下三種方式重新處...
集合是一種資料順序沒有意義而且其資料不會有重複值的一種資料結構,在 JavaScript ES6 的規範中,我們可以透過 new Set() 來建立一個 set...
今天將會把昨天實作的樹,加上幾個函式: sum(): 所有節點值的總和 contain(): 查詢是否樹裡有指定要找的值 size(): 計算樹裡共有幾個節點...
這邊要講怎麼改善資料的辨識。 什麼叫做資料的辨識? 前面一直提到說所有的資料是靠人工標記後當作之後使用的資料集,那在標記的過程中常常遇到一些狀況是包括哪些呢?以...
今天要介紹的是樹,大致的樣子如下圖,其中樹的每個元素都稱為節點,樹最上方的節點稱為根節點,而節點之間上層節點為下層節點的父節點,下層節點為上層節點的子節點,如果...
之前有說過我們團隊每週會刷leetcode,幾乎1000題內都是在考資料結構+演算法,資料結構像是你身上裝備的武器,而演算法則是你真正的武功。而物件導向/設計模...
遞迴種類 遞迴分為直接遞迴和間接遞迴兩種:直接遞迴: 直接在函式內再次呼叫本身函式 function fn1() { fn1(); } 間接遞迴: 函...
這次我們要用昨天學到的佇列搭配一個叫做埃拉托斯特尼篩法的東西去找出一定範圍的質數。 埃拉托斯特尼篩法的維基百科介紹:https://zh.wikipedia.o...
佇列其資料結構用圖片來說明大概如下: 資料以一列的方式儲存每個資料,而且刪除節點時會從最前面也是最早加入佇列的資料開始刪除,新增節點從佇列尾巴開始刪除。此為佇列...
這次我們要用昨天學到的堆疊來解決以下問題: 括號分為以下三種: () [] {}假如一個字串的括號都有與開口(包括: ( [ { )對應的閉合符號(包括: )...
今天要來介紹的資料結構是堆疊。我們可以用一疊書來做比喻堆疊,最一開始被放在桌上的書會被壓在最下面,而最後被放在書堆的書本則在書堆最上面。而當要拿書離開時,不能從...
在學習完陣列和鏈結串列之後呢,我們來把它們做統整比較吧!不過首先要先介紹一個網站,裡面整理了各式資料結構的時間複雜度並整理成表格。網站連結如下: https:/...
Linked List 鏈結串列是一種常見且基礎的資料結構,我們可以基於 Linked List 去建立 Queue、Stack 等資料結構。 Linked...
這次要來介紹的是二維陣列,二維陣列就是陣列裡面的元素也是陣列的一種資料結構舉個例子來說: const group = [ ['172', '156', '1...
這次的文章可以說是JavaScript中,陣列相關操作函式大全了,總共有20個函式,就請準備筆記本好好記錄下吧! 1. 合併陣列 - concat() 其實字串...
在開始用JavaScript實作各種資料結構前,總要先了解什麼是資料結構吧,才會知道之後學習的鏈結串列/堆疊/佇列是什麼東西啊~那廢話不多說,我們就開始吧! 資...
在輸出二個以上變數記憶體位址,發線先宣告的變數會排在後面,百思不得其解又重翻一次教學。 【大綱】 指標二種宣告法 指標說明 總結 【指標二種宣告法】 剛開始...
要先宣告結構再搭配指標,就是一個節點。 【大綱】 結構宣告順序 結構搭配指標 程式碼 閒談 【結構宣告順序】 參考:結構的對齊裡面的圖說很清楚結構裡宣告先後...
標題太長會斷行看起來有點怪,之後「鏈結串列程式實作」縮成「鏈結實作」。同一支程式會重複使用,可以用迴圈來執行,那同一組宣告呢? 【大綱】 同一支程式 同型態宣...
【大綱】 程式碼觀察 圖片解說 假設指標存指標 推薦02_陣列與指標關係作者藍影 Array[i]=*(Array+i);這句話很好懂 【程式碼觀察】...
先了解指標和陣列用法,對鏈結串列程式實作會很有幫助。 【大綱】 鏈結串列前置 指標是門牌號碼 指標程式實作 總結 參考:簡單搞懂指標作者hackgrass...
關於前面文章總整理,將一篇文章濃縮在一張投影片,不過文章還是很長。 【總整理】 變數、陣列、鏈結串列 鏈結串列抽象示意圖 不同語言間使用陣列狀況 四種鏈結串列...
鏈結串列的插入運算和刪除運算,這些基礎還算好理解,後面要跨好幾頁的程式碼就有點複雜。 【大綱】 插入運算 刪除運算 閒談 【插入運算】 印象中有做過,可是翻...
鏈結串列修改運算跟陣列比較起來,麻煩了許多,首先要做的就是移動工作節點。 【大綱】 移動工作節點 修改運算 鏈結串列vs陣列 閒談 【移動工作節點】 工作節...
用圖片說明鏈結串列四種型態,講解「環狀與非環狀」、「單向與雙向」的好處。 【大綱】 鏈結串列型態 環狀與非環狀 單向與雙向 總整理 【鏈結串列型態】 前面資...