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

面對現實,超越自己
逆水行舟,不進則退
posts - 269,comments - 32,trackbacks - 0
算法介紹
  計數排序是一個類似于桶排序的排序算法,其優勢是對已知數量范圍的數組進行排序。它創建一個長度為這個數據范圍的數組C,C中每個元素記錄要排序數組中對應記錄的出現個數。這個算法于1954年由 Harold H. Seward 提出。     

      當輸入的元素是 n 個 0 到 k 之間的整數時,它的運行時間是 Θ(n + k)。計數排序不是比較排序,排序的速度快于任何比較排序算法。

由于用來計數的數組C的長度取決于待排序數組中數據的范圍(等于待排序數組的最大值與最小值的差加上1),這使得計數排序對于數據范圍很大的數組,需要大量時間和內存。例如:計數排序是用來排序0到100之間的數字的最好的算法,但是它不適合按字母順序排序人名。但是,計數排序可以用在基數排序中的算法來排序數據范圍很大的數組。計數排序之所以能夠突破前面所述的Ω(nlgn)極限,是因為它不是基于元素比較的。計數排序適合所需排序的數組元素取值范圍不大的情況(范圍太大的話輔助空間很大)。

定理:任意一個比較排序算法在最壞情況下,都需要做Ω(nlgn)次比較。


算法的步驟如下:

  • 找出待排序的數組中最大和最小的元素
  • 統計數組中每個值為i元素出現的次數,存入數組C的第i
  • 對所有的計數累加(從C中的第一個元素開始,每一項和前一項相加)
  • 反向填充目標數組:將每個元素i放在新數組的第C(i)項,每放一個元素就將C(i)減去1

以下引自麻省理工學院算法導論——筆記:

Counting sort: No comparisons between elements.
• Input: A[1 . . n], where A[ j]??{1, 2, …, k} .
• Output: B[1 . . n], sorted.
• Auxiliary storage: C[1 . . k] .

Counting sort
for i  ← 1 to k
do C[i]  ← 0
for j  ←1 to n
do C[A[ j]]  ← C[A[ j]] + 1   —> C[i] = |{key = i}|
for i  ← 2 to k
do C[i]  ← C[i] + C[i–1]        —>C[i] = |{key  ← i}|
for j  ← n downto 1
do B[C[A[ j]]]  ← A[ j]
C[A[ j]]  ← C[A[ j]] – 1

實例:


對所有的計數累加(從C中的第一個元素開始,每一項和前一項相加)



反向填充目標數組:將每個元素i放在新數組的第C(i)項,每放一個元素就將C(i)減去1






注:基于比較的排序算法的最佳平均時間復雜度為 O(nlogn)
     穩定性:算法是穩定的。


如果k小于nlogn可以用計數排序,如果k大于nlogn可以用歸并排序。


代碼實例:

 1 C++實現:
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 //n為數組元素個數,k是最大的那個元素
 6 void CountingSort(int *input, int size, int k){
 7 int i;
 8 int *result = new int[size]; //開辟一個保存結果的臨時數組
 9 int *count = new int[k+1]; //開辟一個臨時數組
10 for(i=0; i<=k; ++i)
11 count[i]=0;
12 //使count[i]等于等于i的元素的個數
13 for(i=0; i<size; ++i)
14 ++count[input[i]]; //count數組中坐標為元素input[i]的增加1,即該元素出現的次數加1
15 for(i=1; i<=k; ++i)
16 count[i] += count[i-1];
17 for(i=size-1; i>=0--i){ //正序來也行,但是到這來可以使排序是穩定的
18 --count[input[i]]; //因為數組下標從0開始,所以這個放在前面
19 result[count[input[i]]] = input[i]; //這個比較繞, count[input[i]-1] 就代表小于等于元素
    }  
20 copy(result,result+size,input); //調用copy函數把結果存回原數組
21 delete [] result; //記得釋放空間
22 delete [] count;
23 }
24 int main()
25 {
26 int input[11]={2,7,4,9,8,5,7,8,2,0,7};
27 CountingSort(input,11,9);
28 for(int i=0; i<11++i)
29 printf("%d ",input[i]);
30 putchar('\n');
31 return 0;
32 }

 

posted on 2012-11-13 11:07 王海光 閱讀(737) 評論(1)  編輯 收藏 引用 所屬分類: 算法

FeedBack:
# re: 算法導論——計數排序(網易公開課)[未登錄]
2012-11-14 09:24 | 春秋十二月
我對此略有研究,但有所變化和改進,詳見http://www.shnenglu.com/qinqing1984/archive/2012/05/31/176784.html  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲伦伦在线| 国产精品成人观看视频国产奇米| 欧美成人午夜激情| 乱中年女人伦av一区二区| 久久久亚洲精品一区二区三区| 午夜精品久久久久久久蜜桃app | 国产精品福利片| 国产精品综合| 国产日韩欧美在线播放| 国产欧美一级| 亚洲国产精品激情在线观看| aa级大片欧美三级| 久久精品免视看| 欧美大色视频| 亚洲欧美日韩在线观看a三区| 欧美一区二区三区视频在线观看| 久久综合狠狠| 国产精品毛片| 亚洲国产婷婷香蕉久久久久久99| 亚洲人成网站999久久久综合| 亚洲欧美另类国产| 欧美成人中文字幕| 亚洲一区视频在线观看视频| 久久久精品一区| 欧美日韩一区二区三区视频 | 国产精品入口福利| 黄色精品网站| 亚洲一区精彩视频| 农夫在线精品视频免费观看| 日韩视频一区二区三区在线播放| 欧美一区二区三区四区视频| 欧美激情一区二区三区蜜桃视频 | 欧美日韩1区| 国产一区二区视频在线观看| 夜夜嗨av一区二区三区网页| 久久久久久91香蕉国产| 99国产精品久久久| 久久激情视频| 亚洲精品一区二区三区四区高清 | 女仆av观看一区| 国产精品视频久久一区| 亚洲日本中文| 久久视频精品在线| 亚洲午夜影视影院在线观看| 免费观看国产成人| 在线观看亚洲专区| 久久久久久久精| 一区二区三区www| 欧美精品久久天天躁| 亚洲国产精品一区二区www| 久久精品官网| 久久国产毛片| 国产日韩欧美综合| 欧美在线国产精品| 亚洲尤物影院| 国产日韩一区二区三区在线| 午夜综合激情| 亚洲视频一区二区| 欧美午夜电影完整版| 99视频在线观看一区三区| 亚洲国产女人aaa毛片在线| 久久亚洲电影| 亚洲第一精品电影| 免费欧美日韩| 蜜臀av在线播放一区二区三区| 国模吧视频一区| 久久精品欧美日韩| 欧美中文字幕不卡| 一区二区在线观看视频在线观看| 久久久999| 老巨人导航500精品| 91久久精品一区| 亚洲精选成人| 国产精品成人v| 欧美一区不卡| 久久xxxx精品视频| 在线欧美亚洲| 亚洲精品激情| 国产精品jvid在线观看蜜臀| 亚洲手机成人高清视频| 亚洲一区二区三区久久| 国产一区美女| 亚洲精品久久久久久久久久久久| 欧美理论片在线观看| 亚洲午夜国产成人av电影男同| 亚洲一本大道在线| 在线观看欧美日韩国产| 亚洲精品女人| 国产精品你懂得| 麻豆成人小视频| 欧美日韩中文在线观看| 久久久噜噜噜久久中文字免| 欧美极品aⅴ影院| 久久经典综合| 欧美精品入口| 老色鬼久久亚洲一区二区 | 欧美在线观看视频一区二区| 国产综合久久久久久鬼色| 欧美成人激情视频免费观看| 欧美日韩成人综合在线一区二区| 欧美在线观看网址综合| 欧美99在线视频观看| 欧美影院成人| 欧美日韩国产经典色站一区二区三区| 欧美亚洲日本网站| 欧美男人的天堂| 免费看的黄色欧美网站| 国产久一道中文一区| 欧美国产亚洲视频| 国产视频观看一区| 一二三四社区欧美黄| 亚洲黄色免费电影| 久久国产精品黑丝| 亚洲欧美日韩精品| 欧美丰满高潮xxxx喷水动漫| 久久电影一区| 国产精品久久久久久五月尺| 亚洲国产精品精华液网站| 国产午夜久久久久| 亚洲综合日本| 亚洲综合色婷婷| 欧美黄在线观看| 久久影视三级福利片| 国产麻豆精品视频| 亚洲小少妇裸体bbw| 一本色道久久综合亚洲精品高清 | 国产精品老女人精品视频| 亚洲国产美国国产综合一区二区| 国产一区二区三区视频在线观看 | 亚洲欧美欧美一区二区三区| 欧美88av| 亚洲国产mv| 亚洲人被黑人高潮完整版| 狂野欧美激情性xxxx| 美女主播视频一区| 极品少妇一区二区三区| 久久久精品日韩| 免费看精品久久片| 亚洲黄色高清| 欧美片网站免费| 亚洲精品乱码久久久久久| 亚洲精品日韩激情在线电影| 美女网站久久| 亚洲精品免费观看| 亚洲自拍啪啪| 国产欧美日韩在线视频| 欧美一区91| 美国三级日本三级久久99| 在线观看久久av| 欧美精品一区二区三区视频| 日韩一区二区久久| 亚洲欧美视频在线观看视频| 国产精品美女一区二区在线观看| 一区二区毛片| 久久久久国色av免费看影院| 亚洲激情欧美激情| 91久久精品国产91性色| 欧美日韩国产色站一区二区三区| 最新高清无码专区| 亚洲视频观看| 午夜亚洲视频| 欧美不卡视频| 一本久久综合亚洲鲁鲁| 国产精品久久波多野结衣| 欧美一区二区三区婷婷月色| 亚洲第一精品福利| 亚洲永久在线| 影音欧美亚洲| 欧美性jizz18性欧美| 久久国产精品一区二区三区| 亚洲激情国产| 久久久精彩视频| 99精品欧美一区二区蜜桃免费| 国产精品久久久久久久久久ktv| 欧美一级理论性理论a| 亚洲丰满少妇videoshd| 午夜精品一区二区三区在线播放| 国产在线欧美| 欧美少妇一区二区| 久久亚洲不卡| 亚洲女同同性videoxma| 欧美激情综合色| 久久精品人人爽| 亚洲在线国产日韩欧美| 在线免费高清一区二区三区| 欧美视频在线观看| 美国成人毛片| 久久精品免费| 小辣椒精品导航| 亚洲在线播放| 一本色道久久综合亚洲91| 欧美激情偷拍| 欧美99在线视频观看| 久久久久国产精品一区| 午夜欧美理论片| 正在播放欧美一区| 亚洲日本va午夜在线影院| 在线电影欧美日韩一区二区私密| 国产美女在线精品免费观看| 欧美日韩一二区|