最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java優(yōu)先隊(duì)列?priority?queue

 更新時(shí)間:2022年01月25日 11:48:47   作者:L-M-Y  
本文主要介紹了Java優(yōu)先隊(duì)列?priority?queue,優(yōu)先隊(duì)列是一種特殊的數(shù)據(jù)結(jié)構(gòu)隊(duì)列中每一個(gè)元素都被分配到一個(gè)優(yōu)先權(quán)值,出隊(duì)順序按照優(yōu)先權(quán)值來劃分。一般有兩種出隊(duì)順序高優(yōu)先權(quán)出隊(duì)或低優(yōu)先權(quán)出隊(duì),想了解具體內(nèi)容的小伙伴可以參考下文內(nèi)容,希望對(duì)你有所幫助

1.優(yōu)先隊(duì)列概念

優(yōu)先隊(duì)列(priority queue)是一種特殊的數(shù)據(jù)結(jié)構(gòu)。
隊(duì)列中每一個(gè)元素都被分配到一個(gè)優(yōu)先權(quán)值,出隊(duì)順序按照優(yōu)先權(quán)值來劃分。
一般有兩種出隊(duì)順序:高優(yōu)先權(quán)出隊(duì)低優(yōu)先權(quán)出隊(duì)。
priority queue至少要有兩個(gè)最基本的ADT:進(jìn)隊(duì)出隊(duì)(按照高優(yōu)先權(quán)或低優(yōu)先權(quán))

產(chǎn)生原因:同樣是為了提高數(shù)據(jù)處理的效率。試想,要實(shí)現(xiàn)優(yōu)先隊(duì)列對(duì)應(yīng)的功能,若使用鏈表或者數(shù)組,那么要么先排序再插入,要么先插入再查找最大最小元素。這樣一來,入隊(duì)出隊(duì)的時(shí)間復(fù)雜度至少為O(N)。

  • 優(yōu)先隊(duì)列出隊(duì)和入隊(duì)的時(shí)間復(fù)雜度均為O(log N)。
  • 優(yōu)先隊(duì)列基于二叉堆實(shí)現(xiàn)。

2.二叉堆(Heap)

堆是一種特殊的二叉樹,性質(zhì)如下:

  • 每個(gè)結(jié)點(diǎn)的值都大于或等于其左右孩子結(jié)點(diǎn)的值(大頂堆),或每個(gè)結(jié)點(diǎn)的值都小宇或等于其左右孩子的值(小頂堆)。
  • 必須滿足完全二叉樹的結(jié)構(gòu)。

完全二叉樹和滿二叉樹

完全二叉樹 complete binary tree

葉節(jié)點(diǎn)只可能出現(xiàn)在最后兩層,且最后一層的葉節(jié)點(diǎn)都左對(duì)齊
一棵深度為h的完全二叉樹

滿二叉樹 full binary tree

深度為h的滿二叉樹有(2^h)-1個(gè)結(jié)點(diǎn)

由二叉堆的定義可以看出,跟結(jié)點(diǎn)一定是二叉堆中結(jié)點(diǎn)值最大(或最?。┑摹]^大(或較?。┑慕Y(jié)點(diǎn)靠近根節(jié)點(diǎn)

堆的存儲(chǔ)結(jié)構(gòu):

一般情況下,堆用數(shù)組來存儲(chǔ),第i個(gè)結(jié)點(diǎn)的父節(jié)點(diǎn)的下標(biāo)就是(i-1)/2.
如果用層序遍歷順序?qū)⒋箜敹押托№敹汛嫒霐?shù)組,

則關(guān)系如圖:

堆的重要操作

插入:插入一個(gè)元素之后,新元素首先被插入表層(即最后一層盡可能左邊的位置),之后再根據(jù)堆的性質(zhì)進(jìn)行調(diào)整。

例:寫出一次一個(gè)地將10,12,1,14,6,5,8,15,3,9,7,4,11,13和2插入一個(gè)初始為空的二叉堆的結(jié)果

刪除:刪除總是發(fā)生在根處,之后將最后一個(gè)元素(即最后一層最右邊的元素)拿來填補(bǔ)空缺,之后根據(jù)堆的性質(zhì)進(jìn)行調(diào)整堆的結(jié)構(gòu)。

到此這篇關(guān)于Java優(yōu)先隊(duì)列 priority queue的文章就介紹到這了,更多相關(guān)優(yōu)先隊(duì)列 priority queue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決

    Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決

    本文主要介紹了Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決,數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí),id的默認(rèn)生成方式還是雪花算法,局部配置沒有生效,下面就來解決一下,感興趣的可以了解一下
    2023-09-09
  • 如何使用MyBatis Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)curd操作

    如何使用MyBatis Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)curd操作

    MyBatis-Plus是一個(gè)MyBatis 的增強(qiáng)工具,在MyBatis,的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。 這篇文章主要介紹了MyBatis Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)curd操作,需要的朋友可以參考下
    2021-09-09
  • SpringBoot瘦身打包部署的實(shí)現(xiàn)

    SpringBoot瘦身打包部署的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot瘦身打包部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • java學(xué)習(xí)指南之字符串與正則表達(dá)式

    java學(xué)習(xí)指南之字符串與正則表達(dá)式

    在日常Java后端開發(fā)過程中,免不了對(duì)數(shù)據(jù)字段的解析,自然就少不了對(duì)字符串的操作,這其中就包含了正則表達(dá)式這一塊的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)指南之字符串與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Java基于TCP協(xié)議的Socket通信

    Java基于TCP協(xié)議的Socket通信

    本文詳細(xì)講解了Java基于TCP協(xié)議的Socket通信,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java中的迭代和遞歸詳解

    Java中的迭代和遞歸詳解

    這篇文章主要給大家介紹了關(guān)于Java中的迭代和遞歸,文章顯示分別介紹了Java中的迭代和遞歸,而后又介紹了迭代和遞歸的區(qū)別以及數(shù)形遞歸的相關(guān)內(nèi)容,文中介紹的很詳細(xì),相信會(huì)對(duì)大家學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們可以參考借鑒。
    2016-11-11
  • java冒泡排序和選擇排序示例

    java冒泡排序和選擇排序示例

    這篇文章主要介紹了java冒泡排序和選擇排序示例,需要的朋友可以參考下
    2014-05-05
  • 基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例

    基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例

    這篇文章主要介紹了基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java調(diào)用.dll文件的方法

    Java調(diào)用.dll文件的方法

    因?yàn)轫?xiàng)目的需求,要在JAVA項(xiàng)目中調(diào)用Windows的Dll(動(dòng)態(tài)鏈接庫(kù))文件,之前用Jni調(diào)用過C寫的Dll文件,比較麻煩,這里不多說,網(wǎng)上也有很多這方面的文檔。在網(wǎng)上找到一個(gè)開源的組件JNative,使用后感覺比較方便
    2013-04-04
  • IDEA連接MySQL提示serverTimezone的問題及解決方法

    IDEA連接MySQL提示serverTimezone的問題及解決方法

    很多朋友私聊小編,使用IDEA軟件連接MySQL數(shù)據(jù)庫(kù)時(shí)總是提示Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.的錯(cuò)誤,小編就不一一回復(fù)大家了,下面小編把我的解決方法分享到腳本之家平臺(tái),需要的朋友參考下吧
    2021-05-05

最新評(píng)論

长泰县| 福清市| 福建省| 乌兰浩特市| 乐东| 遂昌县| 岱山县| 浦城县| 吉林市| 铜山县| 淮阳县| 平武县| 格尔木市| 平陆县| 华池县| 新宾| 汤原县| 灵武市| 松滋市| 高州市| 南岸区| 依兰县| 龙里县| 理塘县| 灌南县| 贵州省| 安化县| 威宁| 乃东县| 商城县| 囊谦县| 卓尼县| 徐汇区| 揭阳市| 东明县| 准格尔旗| 壶关县| 新野县| 蓝田县| 怀柔区| 卢湾区|