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

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

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

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    Heap sort
           
    import java.io.IOException;

    class MyNode {
      private int iData; 

      public MyNode(int key) {
        iData = key;
      }

      public int getKey() {
        return iData;
      }

    }

    public class Heap {
      private MyNode[] heapArray;

      private int maxSize;

      private int currentSize; // number of items in array

      public Heap(int mx) {
        maxSize = mx;
        currentSize = 0;
        heapArray = new MyNode[maxSize];
      }

      public MyNode remove() 
      
        MyNode root = heapArray[0];
        heapArray[0= heapArray[--currentSize];
        trickleDown(0);
        return root;
      }

      public void trickleDown(int index) {
        int largerChild;
        MyNode top = heapArray[index]
        while (index < currentSize / 2)
        {
          int leftChild = * index + 1;
          int rightChild = leftChild + 1;
          // 找到最大的子節點
          if (rightChild < currentSize
              && 
              heapArray[leftChild].getKey() < heapArray[rightChild]
                  .getKey())
            largerChild = rightChild;
          else
            largerChild = leftChild;

          if (top.getKey() >= heapArray[largerChild].getKey())
            break;

          heapArray[index= heapArray[largerChild];
          index = largerChild; 
        }
        heapArray[index= top;
      }

      public void displayHeap() {
        int nBlanks = 32;
        int itemsPerRow = 1;
        int column = 0;
        int currentIndex = 0
        while (currentSize > 0)
        {
          if (column == 0
            for (int k = 0; k < nBlanks; k++)
              System.out.print(' ');
          System.out.print(heapArray[currentIndex].getKey());

          if (++currentIndex == currentSize//  判斷是否輸出結束
            break;

          if (++column == itemsPerRow// 是否到達行尾?
          {
            nBlanks /= 2
            itemsPerRow *= 2
            column = 0
            System.out.println()
          else
            for (int k = 0; k < nBlanks * 2; k++)
              System.out.print(' ')// 輸入空白
        
      }

      public void displayArray() {
        for (int j = 0; j < maxSize; j++)
          System.out.print(heapArray[j].getKey() " ");
        System.out.println("");
      }

      public void insertAt(int index, MyNode newNode) {
        heapArray[index= newNode;
      }

      public void incrementSize() {
        currentSize++;
      }

      public static void main(String[] argsthrows IOException {
        int size, i;

        size = 100;
        Heap theHeap = new Heap(size);

        for (i = 0; i < size; i++) {
          int random = (int) (java.lang.Math.random() 100);
          MyNode newNode = new MyNode(random);
          theHeap.insertAt(i, newNode);
          theHeap.incrementSize();
        }

        System.out.print("Random: ");
        theHeap.displayArray();
        for (i = size / 1; i >= 0; i--)
          theHeap.trickleDown(i);

        System.out.print("Heap:   ");
        theHeap.displayArray();
        theHeap.displayHeap();
        for (i = size - 1; i >= 0; i--) {
          MyNode biggestNode = theHeap.remove();
          theHeap.insertAt(i, biggestNode);
        }
        System.out.print("Sorted: ");
        theHeap.displayArray();
      }
    }



    凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
    、轉載請注明來處和原文作者。非常感謝。

    posted on 2007-09-28 14:24 草兒 閱讀(1543) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 免费无遮挡无码视频在线观看| 亚洲电影在线播放| 亚洲欧美不卡高清在线| 毛片免费全部播放无码| 亚洲图片在线观看| 亚洲一区在线免费观看| 亚洲精品**中文毛片| 国产精品爱啪在线线免费观看| 91嫩草私人成人亚洲影院| 16女性下面无遮挡免费| 亚洲中文无码线在线观看| 麻豆国产精品免费视频| 国产精品高清视亚洲精品| 久久这里只有精品国产免费10| 亚洲kkk4444在线观看| 成人毛片18女人毛片免费视频未| 亚洲中文无码永久免| 国产一级大片免费看| h视频在线免费观看| 亚洲国产第一站精品蜜芽| 99久久免费中文字幕精品| 亚洲一区在线免费观看| 国产美女精品久久久久久久免费| 免费无码又爽又黄又刺激网站| 亚洲日韩精品A∨片无码| 久久爰www免费人成| 中文文字幕文字幕亚洲色| 国产乱弄免费视频| a级黄色毛片免费播放视频| 中文字幕亚洲免费无线观看日本| 大地资源二在线观看免费高清| 国产成人综合亚洲绿色| 亚洲中文字幕在线第六区| 中文字幕在线免费观看| 亚洲老熟女五十路老熟女bbw| 亚洲国产精品成人久久蜜臀| 久久国产乱子伦精品免费看| 亚洲日产乱码一二三区别 | 久久国产免费直播| 亚洲国产成人久久| 亚洲国产成人久久一区WWW|