作為一名明年就要畢業的大四生,我想將自己大二時學過的資料結構和常見演算法用JavaScript實作一次,像是連結串列、堆疊、佇列、排序還有河內塔、八皇后等問題。
透過這些練習提升自己的程式能力和文章的論述能力,並讓看我文章的人們有所收穫。
今天要介紹的是樹,大致的樣子如下圖,其中樹的每個元素都稱為節點,樹最上方的節點稱為根節點,而節點之間上層節點為下層節點的父節點,下層節點為上層節點的子節點,如果...
今天將會把昨天實作的樹,加上幾個函式: sum(): 所有節點值的總和 contain(): 查詢是否樹裡有指定要找的值 size(): 計算樹裡共有幾個節點...
集合是一種資料順序沒有意義而且其資料不會有重複值的一種資料結構,在 JavaScript ES6 的規範中,我們可以透過 new Set() 來建立一個 set...
在JavaScript ES6 的規範中,新增了 Map 這種資料結構,每組資料都有對應的 key 值(索引值)與 value 值(資料值),而且索引值可以是各...
在過去的14天我們介紹了許多種類的資料結構,並且大多都有搭配一個例題去作應用,不過寫到這邊也到一個段落了,在此想要強調的是資料結構和演算法在資工資管等資訊相關科...
在結束介紹資料結構的部分後,我們將會進入學習一些和演算法相關的知識,今天就先來認識一下"五個"常見的演算法吧! Brute force 暴力...
氣泡排序法(Bubble Sort)是最容易理解和實作的排序演算法,但其時間複雜度在排序法當中算是最差的一個。主要觀念是從頭開始逐一比較相鄰兩筆資料,將較大值往...
選擇排序法 Selection Sort會在未排序的資料列中尋找資料值最小(大)的元素,和原本資料列的第一個元素交換位置,再從剩下未排序的資料列中尋找資料值最小...
今天要介紹的是插入排序法 Insertion Sort,在排序小型資料時,此演算法效能比氣泡排序和選擇排序效能更好。 插入排序法運作方式為逐一將資料值加入已排序...
今天要介紹的是合併排序法 Merge Sort,合併排序法採用分治法(Divide and Conquer),它將資料列不斷分割成兩個資料列,這兩個資料列也不斷...