演算法與資料結構學習(39) 樹結構的實際應用

2021-10-03 18:53:24 字數 629 閱讀 9230

1.堆排序是利用堆這種資料結構而設計的一種排序演算法,堆排序是一種選擇排序,它的最壞,最好,平均時間複雜度均為o(nlogn),它也是不穩定排序。

2.堆是具有以下性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結點的值,稱為大頂堆, 注意 : 沒有要求結點的左孩子的值和右孩子的值的大小關係。

3.每個結點的值都小於或等於其左右孩子結點的值,稱為小頂堆

4.大頂堆舉例說明

對映到陣列裡面是這個樣子:

大頂堆特點

arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2] // i 對應第幾個節點,i從0開始編號

5.小頂堆舉例說明

小頂堆特點:

arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2] // i 對應第幾個節點,i從0開始編號

6.一般公升序採用大頂堆,降序採用小頂堆

演算法與資料結構學習(33) 樹結構(基礎)

1.陣列儲存方式的分析優點 通過下標方式訪問元素,速度快。對於有序陣列,還可使用二分查詢提高檢索速度。缺點 如果要檢索具體某個值,或者插入值 按一定順序 會整體移動,效率較低 示意圖 2.鏈式儲存方式的分析優點 在一定程度上對陣列儲存方式有優化 比如 插入乙個數值節點,只需要將插入節點,鏈結到鍊錶中...

資料結構學習筆記 2 資料結構與演算法

四.演算法設計的要求 五.演算法效率的度量方法 六.函式的漸近增長 七.演算法時間複雜度 八.常見的時間複雜度 九.最壞情況與平均情況 十.演算法空間複雜度 資料結構是底層,演算法高層。資料結構為演算法提供服務。演算法圍繞資料結構操作。演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序...

資料結構 樹結構

樹結構以一種 一對多 的資料關係。樹的結點 結點 樹結構的每乙個元素都可以被稱為乙個節點。父結點 a結點是b,c的父結點 子結點 b,c是a的子結點 根結點 a是樹的根結點,每乙個非空的樹結構中只有乙個根結點 q 如何判斷某個結點是否是根結點?a 根結點沒有父節點 葉子結點 d,e,f是葉子結點,葉...