CS61B資料結構及演算法筆記:(十二)平衡樹(B-Tree)依上一個章節介紹,改變對 BST 插入節點的順序會影響最終的結構,導致搜尋節點的時間複雜度最差的情況為 O(N),最佳為 O(logN)。而時間複雜度又和搜尋節點的次數有關,一顆 BST 所有的節點中,依二元搜尋法需要經過最多次的節點為 leaf,因此先定義樹的高度為 leaf…Nov 26, 2023Nov 26, 2023
CS61B資料結構及演算法筆記:(十一)二元搜尋樹介紹併查集的章節中已簡單說明過甚麼是樹狀結構,也提到使用樹儲存資料所帶來的好處,接下來會清楚定義甚麼是樹,以及如何利用各種與樹相關的資料結構,提升搜尋的資料效率。Sep 30, 2023Sep 30, 2023
CS61B資料結構及演算法筆記:(十)分析運算效率在前面的章節多次提到用不同方法實現資料結構對程式執行效率的差異,整個課程的核心也是在探討如何針對特定類型的問題,使用相對應最佳的資料結構,而這個章節會介紹如何判斷程式執行的效率。Jul 17, 2023Jul 17, 2023
CS61B資料結構及演算法筆記:(九)併查集接下來的幾個章節,會從幾個特定的問題開始,藉由使用不同的資料結構,展示出對程式效能的影響。首先介紹一個經典的動態連結的問題(Dynamic…Jun 24, 2023Jun 24, 2023
CS61B資料結構及演算法筆記:(六)多型從型態確認的過程可以發現變數在不同時候有著不同的型態,可以是類別本身(實例化)的型態、父類別的型態、亦或是父父類別的型態,這又稱:多型(Polymorphism),接下來會以實際的案例介紹多型的應用。Dec 10, 2021Dec 10, 2021
CS61B資料結構及演算法筆記:(五)類別繼承除了可以從接口繼承尚未實現的方法以外,也可以透過關鍵字 extends 從父類別繼承所有的成員,包含所有的變數、方法及巢狀類別(除構築函數)。舉例來說,建立一個新的類別 RotatingSLList 擁有將最後一個節點移動到第一個節點的方法…Nov 24, 2021Nov 24, 2021
CS61B資料結構及演算法筆記:(三)陣列列表在介紹 Python 的列表是如何運作前,先介紹一個特別的物件:陣列(array),一個陣列可以想像成由一連串固定長度的記憶體空間組成,並且從 0 到 N-1 進行索引(index)。在(一)資料類型與節點提到,Java 所有的資料都可以區分為 primitive 或是…Sep 26, 2021Sep 26, 2021