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

java 實(shí)現(xiàn)最小二叉樹堆排序的實(shí)例

 更新時(shí)間:2017年09月22日 10:04:55   投稿:lqh  
這篇文章主要介紹了java 實(shí)現(xiàn)最小二叉樹堆排序的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java 實(shí)現(xiàn)最小二叉堆排序的實(shí)例

寫在前面:

一覺醒來,我就突然有靈感了......

最小二叉堆定義:

二叉堆是完全二元樹或者是近似完全二元樹,最小二叉堆是父結(jié)點(diǎn)的鍵值總是小于或等于任何一個(gè)子節(jié)點(diǎn)的鍵值的堆堆。

存儲(chǔ):

二叉堆一般用數(shù)組來表示。

根節(jié)點(diǎn)在數(shù)組中的位置是0,第n個(gè)位置的子節(jié)點(diǎn)分別在2n+1和 2n+2;

位置k的葉子的父節(jié)點(diǎn)位置為(k-1)/2;

實(shí)現(xiàn):

/** 
 * @description 元素添加到末尾,和它的父節(jié)點(diǎn)比,如果比它小就交換 
 * @param array 
 * 
 * @author LynnWong 
 */ 
private int[] getMinBinaryHeap(int[] array){ 
  int N = array.length; 
  int minBinaryHeap[] = new int[N]; 
  int root;//根的值 
  int heapSize = 0;//記錄插入位置 
  for(int num : array){ 
    minBinaryHeap[heapSize]=num; 
    ++heapSize; 
    int pointer = heapSize-1;//當(dāng)前指向的數(shù)組元素位置 
    while(pointer!=0){ 
      int leafPointer = pointer;//葉子節(jié)點(diǎn)位置 
      pointer = (pointer-1)/2;//根節(jié)點(diǎn)位置 
      root = minBinaryHeap[pointer];//根節(jié)點(diǎn) 
      if(num>=minBinaryHeap[pointer]){//永遠(yuǎn)把當(dāng)前數(shù)組元素看成葉子與其根比較或者換位 
        break; 
      }//如果根比葉子大 就交換位置 
      minBinaryHeap[pointer] = num; 
      minBinaryHeap[leafPointer] = root; 
       
    } 
  } 
  return minBinaryHeap; 
   
} 

/*** 
 * 用隨機(jī)數(shù)測試二叉堆排序 
 * 測試10遍,強(qiáng)迫癥似的變態(tài)... 
 */ 
public void text(){ 
  for(int i=0;i<10;i++){ 
    Random rnd = new Random();  
    int [] lala = {rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6)}; 
    System.out.print("輸入:"); 
    for(int a : lala){ 
      System.out.print(a+" "); 
    } 
    System.out.println(); 
    int []array = this.getMinBinaryHeap(lala); 
    System.out.print("輸出:"); 
    for(int a : array){ 
      System.out.print(a+" "); 
    } 
    System.out.println(); 
  } 
} 


如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • springboot中一些比較常用的注解總結(jié)

    springboot中一些比較常用的注解總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著springboot中一些比較常用的注解展開,文中有非常詳細(xì)的總結(jié),需要的朋友可以參考下
    2021-06-06
  • 什么是Maven及如何配置國內(nèi)源實(shí)現(xiàn)自動(dòng)獲取jar包的操作

    什么是Maven及如何配置國內(nèi)源實(shí)現(xiàn)自動(dòng)獲取jar包的操作

    本文介紹了Maven的基本概念,包括項(xiàng)目構(gòu)建、依賴管理、倉庫管理以及如何設(shè)置國內(nèi)源,通過Maven,開發(fā)者可以自動(dòng)化管理項(xiàng)目的依賴和構(gòu)建流程,提高開發(fā)效率,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java中面向?qū)ο蟮闹R(shí)點(diǎn)總結(jié)

    Java中面向?qū)ο蟮闹R(shí)點(diǎn)總結(jié)

    Java是一門面向?qū)ο蟮恼Z言。對(duì)象是Java程序中的基本實(shí)體。除了對(duì)象之外Java程序同樣處理基本數(shù)據(jù)。下面這篇文章主要給大家總結(jié)了關(guān)于Java中面向?qū)ο蟮闹R(shí)點(diǎn),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Struts 2 數(shù)據(jù)校驗(yàn)功能及校驗(yàn)問題的解決方案

    Struts 2 數(shù)據(jù)校驗(yàn)功能及校驗(yàn)問題的解決方案

    這篇文章主要介紹了Struts 2 數(shù)據(jù)校驗(yàn)功能及校驗(yàn)問題的解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • tomcat部署java web項(xiàng)目遇到的問題及解決方法

    tomcat部署java web項(xiàng)目遇到的問題及解決方法

    這篇文章主要介紹了tomcat部署java web項(xiàng)目遇到的問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • java基于swing實(shí)現(xiàn)的五子棋游戲代碼

    java基于swing實(shí)現(xiàn)的五子棋游戲代碼

    這篇文章主要介紹了java基于swing實(shí)現(xiàn)的五子棋游戲代碼,主要涉及圖形界面與數(shù)組的用法,有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • JAVA API 實(shí)用類 String詳解

    JAVA API 實(shí)用類 String詳解

    這篇文章主要介紹了java String的深入理解的相關(guān)資料,希望通過本文大家能理解String的用法,需要的朋友可以參考下
    2021-10-10
  • Character.UnicodeBlock中cjk的說明詳解

    Character.UnicodeBlock中cjk的說明詳解

    這篇文章主要為大家詳細(xì)介紹了Character.UnicodeBlock中cjk的說明,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Intellij idea熱部署插件JRebel的使用

    Intellij idea熱部署插件JRebel的使用

    這篇文章主要介紹了Intellij idea熱部署插件JRebel的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java并發(fā)包JUC誕生及詳細(xì)內(nèi)容

    java并發(fā)包JUC誕生及詳細(xì)內(nèi)容

    這篇文章主要為大家介紹了java并發(fā)包JUC的誕生及JUC增加的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02

最新評(píng)論

浠水县| 黄骅市| 红桥区| 七台河市| 崇义县| 拉萨市| 呼图壁县| 思南县| 东阳市| 杭锦旗| 密云县| 丹江口市| 木兰县| 金沙县| 紫金县| 沁源县| 安化县| 长顺县| 阳曲县| 大冶市| 那坡县| 潮安县| 手机| 莫力| 杂多县| 措美县| 察雅县| 凭祥市| 山阴县| 东乌| 姚安县| 屏山县| 江陵县| 平利县| 公主岭市| 武邑县| 廉江市| 页游| 津市市| 文化| 当涂县|