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

Zero Lee的專欄

selection algorithm to select nth small elements based on partition

http://en.wikipedia.org/wiki/Selection_algorithm
1. partition algorithm
 1  function partition(list, left, right, pivotIndex)
 2      pivotValue := list[pivotIndex]
 3      swap list[pivotIndex] and list[right]  // Move pivot to end
 4      storeIndex := left
 5      for i from left to right-1
 6          if list[i] < pivotValue
 7              swap list[storeIndex] and list[i]
 8              storeIndex := storeIndex + 1
 9      swap list[right] and list[storeIndex]  // Move pivot to its final place
10      return storeIndex

2. selection algorithm
 1 function select(list, left, right, k)
 2      loop
 3          select pivotIndex between left and right
 4          pivotNewIndex := partition(list, left, right, pivotIndex)
 5          if k = pivotNewIndex - left + 1
 6              return list[pivotNewIndex]
 7          else if k < pivotNewIndex left + 1
 8              right := pivotNewIndex-1
 9          else
10              left := pivotNewIndex+1
11              k := k pivotNewIndex    

>> In above last statement, one bug. Should be
   k := k-pivotNewIndex-left+1
   left := pivotNewIndex+1

3. code
 1 int partition(std::vector<int>& a, int l, int r)
 2 {
 3     int i = l, j = l;
 4     int p = a[r];
 5     while (j<r) {
 6         if (a[j] < p) {
 7             std::swap(a[i], a[j]);
 8             i++;
 9         }
10         j++;
11     }
12     std::swap(a[r], a[i]);
13     return i;
14 }
15 
16 void select_kth_smallest(std::vector<int>& a, int l, int r, int k)
17 {
18     while (1) {
19         int cut = partition(a, l, r);
20 #if 0
21         std::copy(a.begin()+l, a.begin()+cut, std::ostream_iterator<int>(std::cout, " "));
22         std::cout << " <=" << a[cut] << "=> ";
23         std::copy(a.begin()+cut+1, a.begin()+r+1, std::ostream_iterator<int>(std::cout, " "));
24         std::cout << "cut("<<cut<<"),k("<<k<<"),l("<<l<<"),r("<<r<<")\n";
25 #endif
26         if (cut-l+1==k)
27             break;
28         else if (k < cut-l+1)
29             r = cut-1;
30         else {
31             k = k-cut-1+l;
32             l = cut+1;
33         }
34     }
35 }
36 

posted on 2011-03-17 20:20 Zero Lee 閱讀(298) 評論(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>
            亚洲一二三区精品| 校园激情久久| 欧美视频1区| 亚洲欧美国产毛片在线| 国产精品99久久久久久久女警| 欧美连裤袜在线视频| 一区二区三区久久| 中文久久乱码一区二区| 国产精品自拍网站| 久久亚洲二区| 免费一级欧美片在线播放| 一区二区毛片| 亚洲一区自拍| 亚洲电影在线观看| 亚洲精品少妇| 韩国精品一区二区三区| 亚洲国产婷婷香蕉久久久久久| 欧美激情自拍| 久久xxxx| 欧美看片网站| 久久精品视频99| 欧美激情一区二区三区成人| 午夜精品久久一牛影视| 久久人人爽人人爽爽久久| 亚洲精品中文字幕在线| 亚洲午夜一区二区三区| 亚洲电影在线看| 亚洲视频电影图片偷拍一区| 在线观看日韩欧美| 在线视频精品| 亚洲精品一区二区三区福利| 亚洲欧美国产视频| 日韩视频精品在线| 香蕉久久一区二区不卡无毒影院 | 欧美福利在线| 欧美一级片在线播放| 欧美刺激性大交免费视频| 午夜精品免费在线| 欧美啪啪成人vr| 久久一区中文字幕| 国产精品美女在线观看| 欧美国产日韩xxxxx| 国产亚洲精品aa午夜观看| 亚洲美女诱惑| 亚洲欧洲免费视频| 久久精品在线视频| 欧美一区二粉嫩精品国产一线天| 欧美激情精品久久久久久蜜臀| 久久精品亚洲乱码伦伦中文| 欧美全黄视频| 91久久精品一区二区别| 在线日韩精品视频| 欧美一区二区三区啪啪| 午夜免费电影一区在线观看| 欧美激情aaaa| 欧美激情久久久久久| 国产又爽又黄的激情精品视频| 亚洲视频在线观看网站| 亚洲一区欧美一区| 欧美三级电影一区| 99精品热视频| 亚洲午夜电影在线观看| 欧美日韩精品免费 | 久久疯狂做爰流白浆xx| 欧美日韩另类综合| 亚洲三级视频| 99精品视频免费观看视频| 欧美sm视频| 91久久中文字幕| 一本大道久久a久久精二百| 欧美日韩第一区日日骚| 亚洲人成小说网站色在线| 一区二区欧美日韩| 欧美视频中文字幕| 亚洲免费网站| 久久久久久网站| 激情婷婷亚洲| 免费看黄裸体一级大秀欧美| 亚洲国产欧美在线人成| 在线视频亚洲| 国产欧美一区二区精品性色| 亚洲欧美在线x视频| 久久人人爽人人爽| 亚洲国产美女| 欧美美女视频| 亚洲视频在线观看| 久久久久久一区二区三区| 在线欧美不卡| 欧美日韩国产在线| 午夜精品久久久久久99热| 久久伊人精品天天| 日韩一区二区福利| 国产欧美一区二区三区在线看蜜臀| 久久国产色av| 亚洲区第一页| 久久爱www.| 亚洲欧洲精品一区二区| 国产精品欧美精品| 麻豆视频一区二区| 亚洲视频网在线直播| 久久久久一本一区二区青青蜜月| 亚洲国内精品在线| 国产精品夜夜嗨| 久久综合免费视频影院| 中日韩男男gay无套| 免费毛片一区二区三区久久久| 洋洋av久久久久久久一区| 国产日本欧美一区二区| 欧美国产日韩精品免费观看| 午夜精品久久久久久久久久久久 | 久久久国产精品亚洲一区| 亚洲精品韩国| 国产一二三精品| 欧美日韩影院| 牛夜精品久久久久久久99黑人| 亚洲午夜精品一区二区| 亚洲高清久久网| 久久一区精品| 午夜精品在线视频| 日韩亚洲欧美一区二区三区| 精品成人一区二区三区| 国产精品亚洲综合| 欧美日韩一区自拍| 欧美插天视频在线播放| 久久精品主播| 性色av香蕉一区二区| 中文亚洲欧美| 99精品国产高清一区二区| 欧美激情 亚洲a∨综合| 久久久国产成人精品| 亚洲欧美一区二区视频| 一区二区三区国产在线| 亚洲人www| 亚洲区一区二区三区| 亚洲福利专区| 亚洲第一精品夜夜躁人人躁 | 欧美裸体一区二区三区| 老司机久久99久久精品播放免费| 欧美一区精品| 欧美在线一级视频| 性做久久久久久| 性欧美8khd高清极品| 午夜伦理片一区| 午夜影院日韩| 久久精品国产69国产精品亚洲 | 99视频在线精品国自产拍免费观看| 亚洲电影免费观看高清完整版在线| 老妇喷水一区二区三区| 免播放器亚洲一区| 免费看成人av| 91久久黄色| 亚洲精品自在久久| 一二三区精品| 亚洲手机在线| 欧美在线亚洲在线| 久久亚洲一区| 女同一区二区| 欧美日韩在线观看视频| 国产精品美腿一区在线看 | 国产精品国产精品| 国产精品国码视频| 国产一区二区三区视频在线观看 | 国产美女在线精品免费观看| 国产综合久久久久影院| 亚洲电影有码| 亚洲午夜久久久久久久久电影院 | 久久九九久精品国产免费直播| 久久久久久久久岛国免费| 久久综合九色99| 亚洲区一区二区三区| 亚洲一区二区三区国产| 久久久噜噜噜久久| 欧美日韩另类国产亚洲欧美一级| 国产精品红桃| 在线日本成人| 亚洲自拍偷拍一区| 久久一二三区| 99国产精品视频免费观看一公开 | 亚洲国产精品一区二区三区| 亚洲视频一二区| 久久躁日日躁aaaaxxxx| 欧美日韩亚洲视频一区| 国产婷婷精品| 日韩一区二区精品葵司在线| 久久xxxx| 日韩视频免费观看高清完整版| 午夜在线精品偷拍| 欧美精品亚洲二区| 狠狠色丁香久久婷婷综合_中| 日韩亚洲精品电影| 老司机午夜免费精品视频| 99天天综合性| 欧美成人69av| 国模精品一区二区三区色天香| 亚洲最新视频在线播放| 久久婷婷影院| 亚洲一区精品在线| 欧美顶级少妇做爰| 激情成人综合| 久久国产精品久久久久久电车|