資料結構——堆
堆的:
1.堆是一種特殊的完全二叉樹
2.所有的節點都大於等於(最大堆)或小於等於(最小堆)它的子節點。
最大堆:
圖例:
最小堆:
圖例:
js中的堆:
1.js中通常用陣列表示堆。
2.左側子節點的位置是2*index+1。
3.右側子節點的位置是2*index+2。
4.父節點位置是(index-1)/2
圖例:
堆的應用:
1.堆能高效、快速地找出最大值和最小值,時間複雜度:0(1)。
2.找出第k個最大(小)元素。
第k個最大(小)元素解題思路:
1.構建一個最小堆,並將元素依次插入堆中。
2.當堆的容量超過k,就刪除堆頂。
3.插入結束後,堆頂就是第k個最大元素。
相關文章
- 資料結構-堆資料結構
- 資料結構 - 堆資料結構
- [資料結構]堆資料結構
- 資料結構 - 堆(Heap)資料結構
- 資料結構之堆(Heap)資料結構
- 資料結構之索引堆(IndexHeap)資料結構索引Index
- 資料結構之堆(c++)資料結構C++
- 資料結構的概念、堆疊資料結構
- 資料結構與演算法-堆資料結構演算法
- 演算法(4)資料結構:堆演算法資料結構
- 資料結構和演算法-堆資料結構演算法
- 高階資料結構-可並堆資料結構
- 資料結構-二叉樹、堆、圖資料結構二叉樹
- 使用C#實現資料結構堆C#資料結構
- 資料結構&堆&heap&priority_queue&實現資料結構
- 高階資料結構---堆樹和堆排序資料結構排序
- 堆結構
- 資料結構 9 基礎資料結構 二叉堆 瞭解二叉堆的元素插入、刪除、構建二叉堆的程式碼方式資料結構
- 堆疊的應用——用JavaScript描述資料結構JavaScript資料結構
- 資料結構之堆:初學只需一文資料結構
- 資料結構之堆 → 不要侷限於堆排序資料結構排序
- 資料結構初階--二叉樹介紹(基本性質+堆實現順序結構)資料結構二叉樹
- 結構化資料、半結構化資料和非結構化資料
- 資料結構和演算法面試題系列—二叉堆資料結構演算法面試題
- 『演算法與資料結構』優先佇列 二叉堆演算法資料結構佇列
- 【資料結構篇】認識資料結構資料結構
- 加強堆結構說明
- 【資料結構】堆疊(順序棧、鏈棧)的JAVA程式碼實現資料結構Java
- 資料結構小白系列之資料結構概述資料結構
- 資料結構資料結構
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 【演算法與資料結構專場】二叉堆是什麼鬼?演算法資料結構
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- leetcode演算法資料結構題解---資料結構LeetCode演算法資料結構
- 資料結構——樹資料結構
- Redis資料結構Redis資料結構
- 資料結構-樹資料結構
- 資料結構-Tree資料結構