<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

    統計

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成无码人在线观看| 亚洲国产精品无码久久九九| 亚洲国产精品自在线一区二区| jizz日本免费| 亚洲中久无码不卡永久在线观看| 美女被艹免费视频| 亚洲国产精品成人| 一级一片免费视频播放| 中文字幕无码精品亚洲资源网| 四虎国产精品成人免费久久| 亚洲无码视频在线| 最近免费字幕中文大全| 亚洲爆乳无码一区二区三区| 蜜桃成人无码区免费视频网站| 亚洲精品国产成人| 免费A级毛片无码无遮挡内射| 亚洲成_人网站图片| 国产精品免费看久久久无码| 男男黄GAY片免费网站WWW| 中文字幕亚洲天堂| 99视频有精品视频免费观看| 亚洲人成网站在线观看播放动漫 | 久久性生大片免费观看性| 在线观看亚洲av每日更新| 99re8这里有精品热视频免费| 亚洲av最新在线网址| 亚洲免费视频网址| 色偷偷亚洲男人天堂| 久久久久亚洲AV成人网人人网站| 免费观看91视频| 亚洲色欲色欲www| 亚洲精品偷拍视频免费观看| 久久久久久国产精品免费免费男同| 亚洲网址在线观看| 在线观看国产情趣免费视频| 一本大道一卡二大卡三卡免费| 亚洲国产精品第一区二区| 搡女人免费视频大全| 一级人做人a爰免费视频| 亚洲美女视频网站| 亚洲成a人在线看天堂无码|