青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Zero Lee的專欄

堆排序算法的一個實現

Pseudcode
 1 function heapSort(a, count) is
 2      input:  an unordered array a of length count
 3  
 4      (first place a in max-heap order)
 5      heapify(a, count)
 6  
 7      end := count-1 //in languages with zero-based arrays the children are 2*i+1 and 2*i+2
 8      while end > 0 do
 9          (swap the root(maximum value) of the heap with the last element of the heap)
10          swap(a[end], a[0])
11          (put the heap back in max-heap order)
12          siftDown(a, 0, end-1)
13          (decrease the size of the heap by one so that the previous max value will
14          stay in its proper placement)
15          end := end - 1
16  
17  function heapify(a, count) is
18      (start is assigned the index in a of the last parent node)
19      start := count / 2 - 1
20      
21      while start ≥ 0 do
22          (sift down the node at index start to the proper place such that all nodes below
23           the start index are in heap order)
24          siftDown(a, start, count-1)
25          start := start - 1
26      (after sifting down the root all nodes/elements are in heap order)
27  
28  function siftDown(a, start, end) is
29      input:  end represents the limit of how far down the heap
30                    to sift.
31      root := start
32 
33      while root * 2 + 1 ≤ end do          (While the root has at least one child)
34          child := root * 2 + 1        (root*2 + 1 points to the left child)
35          swap := root        (keeps track of child to swap with)
36          (check if root is smaller than left child)
37          if a[swap] < a[child]
38              swap := child
39          (check if right child exists, and if it's bigger than what we're currently swapping with)
40          if child < end and a[swap] < a[child+1]
41              swap := child + 1
42          (check if we need to swap at all)
43          if swap != root
44              swap(a[root], a[swap])
45              root := swap          (repeat to continue sifting down the child now)
46          else
47              return
48 

C++ 實現
 1 // build one maximum heap
 2 template <typename T>
 3 void heapsort(std::vector<T>& a)
 4 {
 5     int sz = (int)a.size();
 6     for (int i = sz/2; i >= 0; i--)
 7         percDown(a, i, sz);
 8     std::cout << "build heap is done.\n";
 9     for (int j = sz-1; j > 0; j--) {
10         std::swap(a[0], a[j]);
11         percDown(a, 0, j);
12     }
13 }
14 
15 inline int leftChild(int i)
16 {
17     return 2*i+1;
18 }
19 
20 template <typename T>
21 void percDown(std::vector<T>& a, int i, int n)
22 {
23     int child;
24     T tmp;
25     for (tmp = a[i]; leftChild(i) < n; i = child) {
26         child = leftChild(i);
27         if (child != n-1 && a[child] < a[child+1])
28             child++;
29         if (tmp < a[child])
30             a[i] = a[child];
31         else
32             break;
33     }
34     a[i] = tmp;
35 }
36 

posted on 2011-03-25 09:32 Zero Lee 閱讀(261) 評論(0)  編輯 收藏 引用 所屬分類: Data structure and algorithms

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲私人影院| 国产精品看片你懂得| 国产亚洲va综合人人澡精品| 亚洲天堂成人在线视频| 9人人澡人人爽人人精品| 欧美日韩1080p| 亚洲午夜在线观看| 亚洲一区二区影院| 国产亚洲精品久久久久久| 久久久人成影片一区二区三区观看| 亚洲欧美激情视频| 精品91视频| 欧美丰满少妇xxxbbb| 欧美成人免费在线| 亚洲欧美日韩一区二区在线| 亚洲综合色视频| 亚洲国产精品v| 亚洲人www| 欧美日韩国产123区| 性欧美xxxx视频在线观看| 久久蜜桃香蕉精品一区二区三区| 亚洲欧洲日产国码二区| 亚洲午夜视频在线观看| 精品福利电影| 一本色道88久久加勒比精品| 国产性天天综合网| 亚洲精品永久免费| 激情小说亚洲一区| 亚洲视频中文| 最新国产成人av网站网址麻豆 | 国产日韩欧美电影在线观看| 欧美成人精品1314www| 国产精品福利片| 欧美高清视频一区| 国产日韩欧美综合精品| 亚洲国产激情| 红桃视频亚洲| 亚洲午夜精品一区二区| 亚洲国产一区二区三区在线播 | 欧美激情第8页| 国产精品一二三| 亚洲区一区二| 亚洲国产综合91精品麻豆| 亚洲一区久久| 亚洲一区二区三区高清 | 午夜伦理片一区| 一本色道久久加勒比精品| 久久人91精品久久久久久不卡| 亚洲免费伊人电影在线观看av| 欧美jizz19hd性欧美| 久久资源av| 国产视频观看一区| 亚洲视频1区| 亚洲无人区一区| 欧美激情在线免费观看| 免费在线观看一区二区| 国产一区二区三区观看| 亚洲尤物在线| 亚洲欧美日韩天堂| 国产精品永久| 亚洲影视在线| 欧美一级片一区| 国产精品亚洲成人| 亚洲欧美在线aaa| 欧美一区二区三区男人的天堂| 欧美日韩视频在线| 在线亚洲自拍| 亚洲欧美日韩在线不卡| 国产精品xxx在线观看www| 艳妇臀荡乳欲伦亚洲一区| 一区二区日本视频| 欧美系列亚洲系列| 亚洲欧美日韩综合aⅴ视频| 新狼窝色av性久久久久久| 国产精品系列在线播放| 香蕉久久夜色精品| 麻豆av一区二区三区久久| 在线看一区二区| 欧美精品一区在线播放| 亚洲精品社区| 欧美亚洲系列| 狠狠网亚洲精品| 欧美freesex8一10精品| 日韩亚洲欧美成人| 久久不射电影网| 亚洲大胆人体在线| 欧美日本国产精品| 亚洲欧美国产制服动漫| 美女视频黄 久久| 99在线精品免费视频九九视| 欧美午夜激情在线| 久久超碰97中文字幕| 免费国产自线拍一欧美视频| 亚洲精品永久免费精品| 国产精品卡一卡二| 久久久噜噜噜久久狠狠50岁| 亚洲激情视频在线| 久久久精品午夜少妇| 亚洲黄色性网站| 国产精品乱码| 蜜桃久久av一区| 亚洲香蕉成视频在线观看| 嫩草成人www欧美| 亚洲一区免费观看| 亚洲电影在线免费观看| 欧美午夜剧场| 免费欧美在线视频| 亚欧成人精品| 日韩亚洲欧美成人一区| 免费观看不卡av| 欧美一级理论片| 一本色道久久综合亚洲二区三区| 国产婷婷精品| 国产精品黄色在线观看| 久久综合福利| 欧美一站二站| 亚洲视频成人| 99精品国产在热久久| 久久亚洲私人国产精品va| 亚洲影院免费| 99国产精品99久久久久久粉嫩| 国内精品视频在线观看| 国产精品美女黄网| 欧美日本中文字幕| 欧美黄免费看| 久久综合一区| 久久精品国产第一区二区三区| 亚洲视频香蕉人妖| 亚洲美女视频在线观看| 欧美激情亚洲激情| 欧美a级片网站| 玖玖玖免费嫩草在线影院一区| 亚洲欧美精品在线观看| 一区二区三区视频在线看| 亚洲欧洲另类| 91久久综合| 亚洲精品韩国| 亚洲精选国产| 亚洲精品免费一二三区| 亚洲国产经典视频| 亚洲三级网站| 亚洲精品欧美精品| 亚洲乱码国产乱码精品精可以看 | 欧美激情bt| 欧美高清在线视频| 欧美精品福利视频| 欧美日韩岛国| 国产精品第一页第二页第三页| 欧美日本国产视频| 欧美性一二三区| 国产精品色婷婷| 国产精品视频免费在线观看| 国产精品欧美日韩一区二区| 国产精品免费一区豆花| 国产精品永久免费在线| 国产欧美欧美| 在线观看日韩av| 亚洲精品三级| 亚洲天堂av高清| 久久精品亚洲热| 欧美va日韩va| 亚洲人成网站精品片在线观看 | 久久综合久久久| 欧美黄在线观看| 99热精品在线观看| 亚洲欧美欧美一区二区三区| 午夜精品在线看| 欧美成人三级在线| 国产精品久久久久久久久久久久久久 | 午夜亚洲性色视频| 久久一区二区三区四区| 欧美激情第4页| 国产精品私拍pans大尺度在线| 国产在线一区二区三区四区| 亚洲国产日韩精品| 亚洲综合色激情五月| 久久综合中文色婷婷| 日韩视频在线观看| 久久精品成人欧美大片古装| 免费不卡中文字幕视频| 国产精品久久久久99| 亚洲黑丝在线| 久久国产精品高清| 亚洲高清不卡在线| 亚洲欧美成人综合| 欧美国产亚洲精品久久久8v| 国产精品国产a| 亚洲国产精品一区在线观看不卡| 这里只有精品在线播放| 老鸭窝亚洲一区二区三区| 亚洲精品国产欧美| 久久久人成影片一区二区三区| 欧美日韩精品免费观看| 永久免费视频成人| 小嫩嫩精品导航| 99国产精品视频免费观看| 久久久精彩视频| 国产欧美亚洲一区| 亚洲一区二区网站| 91久久久久久国产精品|