算法与数据结构(python):堆与堆排序
生活随笔
收集整理的這篇文章主要介紹了
算法与数据结构(python):堆与堆排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提示:專欄解鎖后,可以查看該專欄所有文章。
文章目錄
- 什么是堆
- 堆的表示
- 圖解堆排序
什么是堆
堆是一種完全二叉樹,有最大堆和最小堆兩種。
- 最大堆:對于每個非葉子節點V, V的值都比它的兩個孩子大,稱為最大堆特性(heap orderproperty)最大堆里的根總是存儲最大值,最小的值存儲在葉節點。
- 最小堆:和最大堆相反,每個非葉子節點V, V的兩個孩子的值都比它大。
堆的表示
之前我們用一個節點類和二叉樹類表示樹,這里其實用數組就能實現堆。
仔細觀察下,因為完全二叉樹的特性,樹不會有間隙。對于數組里的一個下標i,我們可以得到它的父親和孩子的節點對應的下標:
總結
以上是生活随笔為你收集整理的算法与数据结构(python):堆与堆排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法与数据结构(python):树与二叉
- 下一篇: 电网操作:线路、主变、母线操作讲解