麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

堆與優(yōu)先級(jí)隊(duì)列——學(xué)習(xí)筆記

2019-11-14 09:14:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本篇文章主要基于算法algorithm第四版


背景:處理有序元素時(shí),不一定要求所有數(shù)據(jù)有序,只要求處理當(dāng)前最大(優(yōu)先級(jí)最高)的元素 優(yōu)先級(jí)隊(duì)列:支持 刪除最大元素插入元素 兩種操作的一種數(shù)據(jù)結(jié)構(gòu)


【1】?jī)?yōu)先級(jí)隊(duì)列的基本表現(xiàn)形式

優(yōu)先級(jí)隊(duì)列的基本實(shí)現(xiàn)可以使用 有序無(wú)序數(shù)組鏈表

無(wú)序數(shù)組或鏈表:刪除最大元素時(shí)需要將數(shù)組遍歷一遍造出最大元素,插入則無(wú)需額外操作有序數(shù)組或鏈表:刪除元素時(shí)只需直接刪除第一個(gè),插入元素需要保持?jǐn)?shù)據(jù)的有序(類似于插入排序) 特點(diǎn):這類實(shí)現(xiàn)的插入元素或刪除最大元素在最壞情況下需要線性時(shí)間來(lái)完成

【2】基于二叉堆的優(yōu)先隊(duì)列實(shí)現(xiàn)方法

基于數(shù)組或鏈表的操作最壞情況下需線性時(shí)間完成,而用堆來(lái)實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列可以使兩種操作更快執(zhí)行

(1)基本定義

堆有序:一棵二叉樹(shù)的每個(gè)節(jié)點(diǎn)大于等于它的兩個(gè)子節(jié)點(diǎn)二叉堆:一組能夠用 堆有序完全二叉樹(shù) 排序的元素

因?yàn)槎娑咽峭耆鏄?shù),所以只用數(shù)組就可以表示,在二叉堆中位置為k的父結(jié)點(diǎn)的位置為ceil(k/2),而子結(jié)點(diǎn)為2k和2k+1,這樣方便的表示也使其能通過(guò)數(shù)組索引方便地上下移動(dòng)元素

(2)二叉堆的相關(guān)算法

在插入或刪除堆中元素時(shí),會(huì)打破堆的狀態(tài),所有需要對(duì)堆進(jìn)行遍歷來(lái)恢復(fù)堆的狀態(tài)(堆有序 以及 完全二叉樹(shù)),這個(gè)過(guò)程稱為堆的有序化。有序化過(guò)程主要分為兩類:

某個(gè)結(jié)點(diǎn)的優(yōu)先級(jí)上升(或是在堆底加入新元素時(shí)),需要由下至上恢復(fù)堆的順序,且形象地稱之為上浮某結(jié)點(diǎn)優(yōu)先級(jí)下降(如將根節(jié)點(diǎn)替換為更小的元素時(shí)),需要由上至下恢復(fù)堆的順序,稱之為下沉

(3)優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)

通過(guò)有序化的兩個(gè)過(guò)程我們便可實(shí)現(xiàn)插入元素以及刪除最大元素的操作 插入元素:將新元素加到數(shù)組末尾,增加堆的大小并讓這個(gè)新元素 上浮 到合適的位置 刪除最大元素:從數(shù)組刪去最大的元素并將最后一個(gè)元素放到堆頂,減小堆的大小,并讓該元素 下沉 到合適的位置 這里寫圖片描述

【3】堆排序

優(yōu)先隊(duì)列可以變成一種排序方法,將所有元素插入一個(gè)查找最小元素 的優(yōu)先隊(duì)列,然后再重復(fù)調(diào)用刪除最小元素的操作來(lái)將他們按順序刪去。以此方法來(lái)實(shí)現(xiàn)排序。 在進(jìn)行堆排序時(shí),首先要將一組無(wú)序數(shù)據(jù)建立起堆,然后再重復(fù)刪去最大(或小)元素

(1)堆的構(gòu)造

上浮法:逐一將元素加入到已建立的堆尾中,再用上浮法調(diào)整堆下沉法:從葉子結(jié)點(diǎn)視為已經(jīng)調(diào)整好的堆,然后用下沉法將其父結(jié)點(diǎn)下沉至合適位置,以此逐層往上,此法只需要掃描數(shù)組中一半的元素,因?yàn)槲覀兛梢蕴^(guò)大小為1的子堆

(2)下沉排序

這一階段完成排序工作。從堆中刪除最大元素,然后放入堆縮小后數(shù)組中空出的位置,將堆尾元素放到堆頂,進(jìn)行下沉操作。以此方法重復(fù),則一個(gè)最大堆可以得到一個(gè)升序序列。


本人學(xué)識(shí)尚淺,有什么不對(duì)的歡迎指出,一起交流交流^ ^


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天天草天天干天天 | 国产毛片网 | 久久国产精品二国产精品中国洋人 | 国产成人精品二区 | 久久国产精品久久久久久久久久 | 一区二区三区在线观看免费视频 | 加勒比色综合 | 欧美一级成人一区二区三区 | 欧美成人二区 | 亚洲字幕av | 福利在线影院 | 国产一区二区视频网站 | 欧美成人免费看 | 国产午夜亚洲精品理论片大丰影院 | 欧美精品激情在线 | 伊人在线| 青青青在线免费 | 99国产精品自拍 | 97中文| 福利在线小视频 | 久在线观看福利视频69 | 成人男女啪啪免费观看网站四虎 | 黄色一级片毛片 | 亚洲无线看 | 国产精品久久久免费观看 | 国产成人视屏 | 一夜新娘第三季免费观看 | 亚洲精中文字幕二区三区 | 性欧美在线视频 | 羞羞电影在线观看 | 久久久久久免费 | 亚州精品国产 | 在线观看av国产一区二区 | 亚洲精品成人久久久 | 国产剧情在线观看一区二区 | 久久国产精品免费视频 | 亚洲第一页在线观看 | 国产无限资源在线观看 | 久草视频国产在线 | 国产精品久久久久久婷婷天堂 | 宅男噜噜噜66国产在线观看 |