欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

2.二叉堆(Heap)

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

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

完全二叉樹和滿二叉樹

完全二叉樹 complete binary tree

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

滿二叉樹 full binary tree

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

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

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

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

則關(guān)系如圖:

堆的重要操作

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

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

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

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

相關(guān)文章

  • java實現(xiàn)簡單解析XML文件功能示例

    java實現(xiàn)簡單解析XML文件功能示例

    這篇文章主要介紹了java實現(xiàn)簡單解析XML文件功能,結(jié)合實例形式分析了java針對xml文件的讀取、遍歷節(jié)點及輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • SpringBoot集成MyBatis的三種方式

    SpringBoot集成MyBatis的三種方式

    Spring Boot與MyBatis的集成為Java開發(fā)者提供了一種簡便而強大的方式來訪問和操作數(shù)據(jù)庫,在本文中,我們將深入解析Spring Boot集成MyBatis的多種方式,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式

    Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式

    這篇文章主要介紹了Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式,對設(shè)計模式感興趣的同學(xué),一定要看一下
    2021-04-04
  • java實現(xiàn)發(fā)送郵件功能

    java實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)發(fā)送郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • java實現(xiàn)搶紅包算法(公平版和手速版)

    java實現(xiàn)搶紅包算法(公平版和手速版)

    這篇文章主要為大家詳細介紹了java實現(xiàn)搶紅包算法,分為公平版和手速版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • IDEA自定義pom依賴的步驟詳解

    IDEA自定義pom依賴的步驟詳解

    這篇文章主要介紹了IDEA自定義pom依賴的步驟詳解,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java字符串常量池和intern方法解析

    Java字符串常量池和intern方法解析

    本文主要介紹了Java字符串常量池和intern方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java實現(xiàn)SM3加密和驗證的示例代碼

    Java實現(xiàn)SM3加密和驗證的示例代碼

    在商用密碼體系中,SM3主要用于數(shù)字簽名及驗證、消息認證碼生成及驗證、隨機數(shù)生成等,其算法公開,本文給大家詳細介紹了使用Java實現(xiàn)SM3加密和驗證,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • JAVA遍歷一個文件夾中的所有文件的小例子

    JAVA遍歷一個文件夾中的所有文件的小例子

    在實際項目中給定一文件夾,得到這個文件夾下所有的文件這樣的需求并不是很多,更多的是查找或是刪除某一具體的文件
    2013-10-10
  • JavaWeb響應(yīng)下載功能實例代碼(包含工具類)

    JavaWeb響應(yīng)下載功能實例代碼(包含工具類)

    今天通過本文給大家分享的是關(guān)于javaweb的響應(yīng)(response)下載功能,需要的朋友參考下吧
    2017-07-07

最新評論