数据结构与算法(C++)– 堆排(Heap Sort)
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法(C++)– 堆排(Heap Sort)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
堆排(Heap Sort)
1、概念
完全二叉樹特點:
對于完全二叉樹中任一點 i:
- 左孩子的位置為: 2i
- 右孩子的位置為:2i+1
- 父節點位置為:i/2 向下取整
最小二叉堆:根節點的值小于子樹的任一元素,對于子樹也一樣。
堆排實現:最小二叉堆,優先隊列
2、插入元素
原理:在末尾插入,根據大小關系進行調整。
插入14:
復雜度:
- 插入一個元素平均比較次數為2.607,移動1.607層。
- 一次插入復雜度為平均為O(1),最差為O(logN)。
3、刪除最小元素
原理:刪除根節點,其它元素依次向上補空。
刪除:
復雜度: O(logN)
4、排序
時間復雜度為O(N logN)
總結
以上是生活随笔為你收集整理的数据结构与算法(C++)– 堆排(Heap Sort)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: try-catch-finally的执行
- 下一篇: C++ 标准库类型 set