<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jialisoftw

    java 實現最小二叉堆排序

    寫在前面: 
    一覺醒來,我就突然有靈感了...... 
    最小二叉堆定義: 
    二叉堆是完全二元樹或者是近似完全二元樹,最小二叉堆是父結點的鍵值總是小于或等于任何一個子節點的鍵值的堆堆。 
    存儲: 
    二叉堆一般用數組來表示。 
    根節點在數組中的位置是0,第n個位置的子節點分別在2n+1和 2n+2; 
    位置k的葉子的父節點位置為(k-1)/2; 
    實現: 
    Java代碼:  
    1. /** 
    2.  * @description 元素添加到末尾,和它的父節點比,如果比它小就交換 
    3.  * @param array 
    4.  *  
    5.  * @author LynnWong 
    6.  */  
    7. private int[] getMinBinaryHeap(int[] array){  
    8.     int N = array.length;  
    9.     int minBinaryHeap[] = new int[N];  
    10.     int root;//根的值  
    11.     int heapSize = 0;//記錄插入位置  
    12.     for(int num : array){  
    13.         minBinaryHeap[heapSize]=num;  
    14.         ++heapSize;  
    15.         int pointer = heapSize-1;//當前指向的數組元素位置  
    16.         while(pointer!=0){  
    17.             int leafPointer = pointer;//葉子節點位置  
    18.             pointer = (pointer-1)/2;//根節點位置  
    19.             root = minBinaryHeap[pointer];//根節點  
    20.             if(num>=minBinaryHeap[pointer]){//永遠把當前數組元素看成葉子與其根比較或者換位  
    21.                 break;  
    22.             }//如果根比葉子大 就交換位置  
    23.             minBinaryHeap[pointer] = num;  
    24.             minBinaryHeap[leafPointer] = root;  
    25.               
    26.         }  
    27.     }  
    28.     return minBinaryHeap;  
    29.       
    30. }  
    Java代碼 : 
    1. /*** 
    2.  * 用隨機數測試二叉堆排序 
    3.  * 測試10遍,強迫癥似的變態... 
    4.  */  
    5. public void text(){  
    6.     for(int i=0;i<10;i++){  
    7.         Random rnd = new Random();   
    8.         int [] lala = {rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6),rnd.nextInt(6)};  
    9.         System.out.print("輸入:");  
    10.         for(int a : lala){  
    11.             System.out.print(a+" ");  
    12.         }  
    13.         System.out.println();  
    14.         int []array = this.getMinBinaryHeap(lala);  
    15.         System.out.print("輸出:");  
    16.         for(int a : array){  
    17.             System.out.print(a+" ");  
    18.         }  
    19.         System.out.println();  
    20.     }  

    posted on 2013-01-10 14:01 飛豬一號 閱讀(1488) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2013年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一线产区二线产区区| 亚洲AV日韩精品久久久久久久| 亚洲国产高清美女在线观看| 精品无码国产污污污免费网站| 亚洲精品乱码久久久久久按摩 | 亚洲国产精品午夜电影| 免费黄色电影在线观看| 久久综合亚洲色一区二区三区| 37pao成人国产永久免费视频| 亚洲AV天天做在线观看| 91久久成人免费| 亚洲最大的成人网站| 超pen个人视频国产免费观看| 亚洲αⅴ无码乱码在线观看性色 | 在线免费观看a级片| 亚洲av综合av一区二区三区 | 一级做性色a爰片久久毛片免费| 亚洲精品动漫人成3d在线 | 免费无码午夜福利片| 久久夜色精品国产亚洲av| 日韩免费的视频在线观看香蕉| 亚洲综合无码一区二区三区| 毛片大全免费观看| 免费人成大片在线观看播放| 亚洲va久久久噜噜噜久久| 久久精品免费全国观看国产| 美女视频黄a视频全免费网站色| 色噜噜亚洲精品中文字幕| 亚洲视频免费一区| 特级无码毛片免费视频| 亚洲国产精品va在线播放| 97在线观免费视频观看| 黄色毛片视频免费| 久久精品国产亚洲AV无码娇色| 特级淫片国产免费高清视频| 成人久久免费网站| 亚洲欧美成人av在线观看| 亚洲精品乱码久久久久久久久久久久| 成视频年人黄网站免费视频| 九一在线完整视频免费观看| 亚洲精品成人网站在线播放|