下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第java中的PriorityQueue類過程詳解目錄一、什么是優(yōu)先級隊列1、概念2、案例演示特性3、數(shù)據(jù)結(jié)構(gòu)
一、什么是優(yōu)先級隊列
1、概念
我們都知道隊列,隊列的核心思想就是先進先出,這個優(yōu)先級隊列有點不太一樣。優(yōu)先級隊列中,數(shù)據(jù)按關(guān)鍵詞有序排列,插入新數(shù)據(jù)的時候,會自動插入到合適的位置保證隊列有序。(順序有兩種形式:升序或者是降序)
來一個標準點的定義:
PriorityQueue類在Java1.5中引入。PriorityQueue是基于優(yōu)先堆的一個無界隊列,這個優(yōu)先隊列中的元素可以默認自然排序或者通過提供的Comparator(比較器)在隊列實例化的時排序。要求使用JavaComparable和Comparator接口給對象排序,并且在排序時會按照優(yōu)先級處理其中的元素。
比如我們往隊列里面插入132,插入2的時候,就會在內(nèi)部調(diào)整為123(默認順序是升序)。正是由于這個優(yōu)良特性可以幫助我們實現(xiàn)一系列問題。我們先看一個例子,體會一下他的優(yōu)點,然后再看一下為什么能夠?qū)崿F(xiàn)這樣的功能。
我們看到就算是我們隨意插入數(shù)據(jù),但是輸出的結(jié)果總是有序的,這樣一來優(yōu)先級隊列就可以有了很多個使用場景。下面給出一道力扣題。體會一下他的優(yōu)點。
2、案例演示特性
Leetcode215題:在未排序的數(shù)組中找到第k個最大的元素。請注意,你需要找的是數(shù)組排序后的第k個最大的元素,而不是第k個不同的元素。
輸入:3,2,3,1,2,4,5,5,6,k=4。輸出就是5,因此重復(fù)的并不考慮。我們一般情況下一般首先想到冒泡排序。每一次都冒出來一個最小的元素,這樣冒K次,就是我們想要的結(jié)果。
其實冒泡排序還可以解決另外一個問題,那就是返回倒數(shù)第K大的元素,方法是每次冒出來一個最大的元素即可。
這樣做很簡單,但是需要我們自己手寫冒泡排序,下面我們看使用優(yōu)先級隊列如何解決的。
就這幾行代碼就搞定了,是不是超級簡單。為什么優(yōu)先級隊列能夠?qū)崿F(xiàn)呢?下面我們來分析一下他的數(shù)據(jù)結(jié)構(gòu):
3、數(shù)據(jù)結(jié)構(gòu)
優(yōu)先級隊列底層的數(shù)據(jù)結(jié)構(gòu)其實是一顆二叉堆,什么是二叉堆呢?我們來看看
在這里我們會發(fā)現(xiàn)以下特征:
(1)二叉堆是一個完全二叉樹
(2)根節(jié)點總是大于左右子節(jié)點(大頂堆),或者是小于左右子節(jié)點(小頂堆)。
如果我們要插入一個節(jié)點怎么辦呢?
自己使用畫圖工具畫的,能看懂就行,不要在意那些細節(jié)兄弟。過程如下:
(1)找到待插入位置:滿足完全二叉樹的特點,依次插入
(2)插入之后判斷是否滿足二叉堆的性質(zhì),不滿足那就調(diào)整
(3)16交換,發(fā)現(xiàn)不滿足,14交換,滿足即停止。
對于我們的優(yōu)先級隊列就是這樣的一種數(shù)據(jù)結(jié)構(gòu),因此我們在插入的時候保證了數(shù)據(jù)的有序性。
OK。到這基本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育局外出培訓(xùn)報銷制度
- 攜程新員工培訓(xùn)制度規(guī)定
- 培訓(xùn)學(xué)校上墻管理制度
- 新入職人員崗前培訓(xùn)制度
- 培訓(xùn)學(xué)校攤位管理制度
- 幼兒園教師遠程培訓(xùn)制度
- 醫(yī)療機構(gòu)全員培訓(xùn)制度
- 新員工崗前培訓(xùn)程序制度
- 管理人培訓(xùn)制度及流程
- 電廠安全培訓(xùn)管理制度
- TOC基本課程講義學(xué)員版-王仕斌
- T-GDWCA 0035-2018 HDMI 連接線標準規(guī)范
- 面板堆石壩面板滑模結(jié)構(gòu)設(shè)計
- 初中語文新課程標準與解讀課件
- 無人機裝調(diào)檢修工培訓(xùn)計劃及大綱
- 中建通風與空調(diào)施工方案
- 高考語言運用題型之長短句變換 學(xué)案(含答案)
- 春よ、來い(春天來了)高木綾子演奏長笛曲譜鋼琴伴奏
- ARJ21機型理論知識考試題庫(匯總版)
- 2023年婁底市建設(shè)系統(tǒng)事業(yè)單位招聘考試筆試模擬試題及答案解析
- GB/T 4623-2014環(huán)形混凝土電桿
評論
0/150
提交評論