成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊數據結構與算法:二叉堆

開發 前端
在一個包含 n 個數據的數組中,我們可以維護一個大小為 K 的小頂堆,順序遍歷數組,從數組中取出數 據與堆頂元素比較。如果比堆頂元素大,我們就把堆頂元素刪除,并且將這個元素插入到堆中。

一、定義

二叉堆本質上是一種完全二叉樹,它分為兩個類型。

1. 大頂堆(最大堆)

最大堆的任何一個父節點的值,都大于或等于它左、右孩子節點的值

2. 小頂堆(最小堆)

最小堆的任何一個父節點的值,都小于或等于它左、右孩子節點的值

二叉堆的根節點叫作堆頂。

最大堆和最小堆的特點決定了:最大堆的堆頂是整個堆中的最大元素;最小堆的堆頂是整個堆中的最小元素

二、二叉堆存儲

完全二叉樹比較適合用數組來存儲。用數組來存儲完全二叉樹是非常節省存儲空間的。

因為我們不需要 存儲左右子節點的指針,單純地通過數組的下標,就可以找到一個節點的左右子節點和父節點。

從圖中我們可以看到,數組中下標為 i 的節點的左子節點,就是下標為 i?2 的節點,右子節點就是下標 為 i?2+1 的節點,父節點就是下標為 i/2 取整的節點。

三、二叉堆的典型應用

優先隊列

利用堆求 Top K問題

在一個包含 n 個數據的數組中,我們可以維護一個大小為 K 的小頂堆,順序遍歷數組,從數組中取出數 據與堆頂元素比較。如果比堆頂元素大,我們就把堆頂元素刪除,并且將這個元素插入到堆中;如果比 堆頂元素小,則不做處理,繼續遍歷數組。這樣等數組中的數據都遍歷完之后,堆中的數據就是前 K 大 數據了

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-11-02 09:15:47

算法與數據結構

2021-04-01 10:34:18

Java編程數據結構算法

2021-03-19 10:25:12

Java數據結構算法

2021-03-29 10:13:47

Java編程數據結構算法

2020-11-23 08:53:34

堆Heap

2021-03-22 09:00:22

Java數據結構算法

2020-09-23 18:25:40

算法二叉樹多叉樹

2022-09-05 08:06:49

數據結構Java

2021-04-19 07:47:42

數據結構二叉樹Tree

2021-04-20 08:37:14

數據結構二叉樹

2013-01-30 10:34:02

數據結構

2020-08-31 07:43:58

二叉堆大頂堆存儲

2021-04-28 20:12:27

數據結構創建

2021-01-07 08:12:47

數據結構二叉樹

2021-05-06 05:29:32

二叉堆數據結構算法

2021-03-02 10:57:39

二叉樹二叉堆節點

2020-10-21 14:57:04

數據結構算法圖形

2023-03-08 08:03:09

數據結構算法歸并排序

2023-10-27 07:04:20

2025-04-29 09:56:39

Python數據結構開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黑人精品欧美一区二区蜜桃 | 成人在线播放 | 一区二区三区在线免费观看 | 中文字幕99 | 色综合久久久 | 国产一级片免费在线观看 | 国产亚洲黄色片 | 精品欧美激情在线观看 | 久久综合伊人一区二区三 | 成人av播放 | 欧美精品久久久 | 日日天天| 欧美一区二区三区在线 | 国产精品123区 | av网址在线 | 精品国产18久久久久久二百 | 国产色网 | 美女131mm久久爽爽免费 | 欧美日韩在线免费 | 成人一区av偷拍 | 国产99久久精品一区二区永久免费 | 亚洲国产成人精品女人久久久 | 欧美黄在线观看 | 亚洲成人免费视频在线 | 丝袜美腿一区二区三区 | 国产精品国色综合久久 | 在线永久看片免费的视频 | 久久久www成人免费精品 | 国产黄色大片 | 精品一区二区三区四区五区 | 日韩成人中文字幕 | 国产福利视频在线观看 | 欧美精品久久久久久久久老牛影院 | 欧美日韩高清在线一区 | 亚洲日本一区二区 | 在线观看视频亚洲 | 成人精品一区二区三区中文字幕 | 在线一区视频 | 久久国产精品一区二区三区 | 亚洲人成网站777色婷婷 | 97久久精品午夜一区二区 |