作為程式入門小白,想進一步了解資料結構與演算法。本次參賽會以udemy上的課程: The complete Data Structures and Algorithms Course in Python 為主,其餘書籍為輔來撰寫30天的閱讀筆記。
昨天給大家介紹了二元樹,今天帶大家來看程式碼:首先demo用linked list做binary tree,圖應該看起來像這樣:圖1 下面example對應到的...
前面介紹用linked list寫Binary tree,今天給大家demo用python list(固定大小(with capacity limited))寫...
二元搜尋樹(Binary Search Tree)是二元樹(Binary Tree)的一種,但其另外遵循以下幾個規則:1. Left child 的值會少於等於...
二元堆積(Binary Heap)為一有以下性質的二元樹:1. 所有的parent nodes必須比下面的children nodes值都小(min heap)...
AVL 樹是一種會自我平衡的二元搜尋樹(Binary Search Tree,見兩天前文章),對每一個節點來說,左右兩邊的高度差(height differen...
字典樹(trie)是一種樹狀資料結構,用於儲存關聯有序陣列,通常是字串。(圖1)其在儲存與搜尋字串方面在空間與時間上很有效率。其任一節點可以字典的形式儲存非重複...
今天來點輕鬆的~我們來介紹hash table 雜湊表是一種關聯性陣列(associative array)允許使用者用key來索引資料儲存位子hash val...
介紹完資料結構,總算進入到演算法的部分,根據課綱,我們首先從排序演算法(sorting algorithm)開始看:排序演算法將資料由小到大(ascending...
合併排序法 (Merge Sort) 合併演算法input array不斷分成兩半,直到不能再分(剩一個element),再兩兩合併各組資料,合併時排序,再合併...
今天的部分就輕鬆很多,這裡就只介紹線性搜尋和二元搜尋。 線性搜尋 線性搜尋(linear search):把想搜尋的目標跟array中的值一個一個對比。時間複雜...