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

面對現實,超越自己
逆水行舟,不進則退
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 王海光 閱讀(729) 評論(1)  編輯 收藏 引用 所屬分類: 算法

FeedBack:
# re: 算法導論——計數排序(網易公開課)[未登錄]
2012-11-14 09:24 | 春秋十二月
我對此略有研究,但有所變化和改進,詳見http://m.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>
            午夜欧美理论片| 国产一区二区三区四区五区美女 | 亚洲综合另类| 欧美永久精品| 午夜久久电影网| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲欧美日韩国产成人精品影院| 久久久久久久久一区二区| 亚洲精品日韩欧美| 欧美在线地址| 亚洲欧美日韩国产精品| 亚洲欧美视频在线观看| 一区二区精品在线| 亚洲精品国产系列| 91久久综合亚洲鲁鲁五月天| 亚洲国产高清视频| 99精品欧美一区二区三区综合在线| 亚洲字幕在线观看| 91久久精品日日躁夜夜躁欧美| 久久国产主播| 亚洲黄色影院| 久久精品72免费观看| 国产精品视频99| 在线观看av不卡| 一区二区三区色| 欧美成人中文字幕| 久久全球大尺度高清视频| 欧美精品成人一区二区在线观看 | 亚洲国产精品久久久久秋霞蜜臀| 亚洲福利久久| 美国三级日本三级久久99| 国产欧美精品日韩精品| 一本综合精品| 欧美激情一区二区三区高清视频| 99精品视频免费| 欧美日韩成人一区二区三区| 黄色成人av在线| 久久综合影音| 欧美va亚洲va香蕉在线| 国产欧美一区二区精品秋霞影院| 在线观看91精品国产入口| 欧美制服丝袜| 久久久久久久成人| 亚洲精品午夜| 国产午夜精品麻豆| 久久久爽爽爽美女图片| 中文欧美字幕免费| 国产亚洲精久久久久久| 欧美国产专区| 欧美日韩理论| 久久av老司机精品网站导航| 国产婷婷色一区二区三区| 亚洲一二三级电影| 国产在线成人| 欧美顶级艳妇交换群宴| 欧美日韩免费在线视频| 亚洲一区二区视频| 亚洲欧美日韩精品久久| 亚洲高清二区| 91久久精品国产| 欧美日韩国产在线播放网站| 午夜欧美大尺度福利影院在线看| 欧美va亚洲va香蕉在线| 欧美专区日韩专区| 免费久久久一本精品久久区| 欧美aaa级| 国产伊人精品| 性欧美xxxx视频在线观看| 91久久亚洲| 免费欧美日韩国产三级电影| 久久精品人人爽| 欧美天天视频| 亚洲欧美在线免费| 亚洲在线一区二区| 欧美韩国日本一区| 亚洲无限乱码一二三四麻| 夜夜嗨av一区二区三区网页| 亚洲国产裸拍裸体视频在线观看乱了 | 久久精品国产99国产精品| 国产视频一区二区在线观看| 欧美视频四区| 国产精品视频自拍| 欧美天天在线| 国产性猛交xxxx免费看久久| 国产精品久久久对白| 国产精品私拍pans大尺度在线 | 男人的天堂成人在线| 欧美有码视频| 欧美高清视频一区二区| 夜夜嗨一区二区| 有码中文亚洲精品| 国内自拍一区| 国产精品美女久久久浪潮软件| 久久成人精品一区二区三区| 欧美bbbxxxxx| 欧美在线一级视频| 欧美自拍偷拍| 亚洲愉拍自拍另类高清精品| 亚洲肉体裸体xxxx137| 在线不卡a资源高清| 国产精品久久久一本精品| 欧美日本不卡| 欧美日韩大片一区二区三区| 久久综合伊人77777麻豆| 亚洲小说春色综合另类电影| 亚洲黄色精品| 亚洲成人资源| 亚洲国产精品久久久| 欧美激情视频网站| 欧美国产欧美亚州国产日韩mv天天看完整| 99精品视频免费| 亚洲视频你懂的| 新狼窝色av性久久久久久| 欧美一区二区三区免费看| 欧美激情久久久| 欧美激情一区二区三区四区| 蜜乳av另类精品一区二区| 欧美电影资源| 99精品欧美一区二区三区| 一本综合久久| 久久久免费观看视频| 欧美韩日一区二区三区| 欧美日韩精品免费观看| 国产精品视频免费一区| 国产综合久久久久久| 亚洲人成在线播放网站岛国| 一区二区福利| 你懂的亚洲视频| 亚洲一区亚洲| 欧美精品日本| 国产午夜久久| 亚洲在线视频观看| 亚洲大片免费看| 亚洲免费在线看| 欧美精品在线播放| 亚洲丰满少妇videoshd| 久久精品中文| 久久精品动漫| 国产日本欧洲亚洲| 亚洲韩国青草视频| 久久久蜜臀国产一区二区| 亚洲无线视频| 国产乱码精品一区二区三区忘忧草| 亚洲国产日韩一级| 欧美激情第1页| 欧美精品一区视频| 一区二区免费在线视频| 亚洲人成欧美中文字幕| 欧美激情麻豆| 99xxxx成人网| 日韩视频一区二区三区| 欧美激情网站在线观看| 亚洲性xxxx| 亚洲综合第一| 在线播放日韩欧美| 亚洲福利视频专区| 欧美日韩视频第一区| 蜜桃av一区二区三区| 亚洲高清精品中出| 亚洲天堂激情| 亚洲国产精品国自产拍av秋霞| 男女av一区三区二区色多| 久久久久久自在自线| 一区二区三区高清在线观看| 亚洲一级二级| 日韩亚洲国产欧美| 亚洲一二三区在线观看| 亚洲激情综合| 亚洲欧美日韩国产一区二区三区 | 韩国久久久久| 日韩视频免费观看| 亚洲第一页中文字幕| 欧美亚洲一区二区三区| 亚洲日本理论电影| 欧美一区视频在线| 亚洲一本视频| 欧美精品在线看| 亚洲国产天堂久久综合网| 韩日精品视频| 久久精品视频导航| 久久精品91久久久久久再现| 欧美另类变人与禽xxxxx| 亚洲国产日韩一区| 一区二区三区高清在线观看| 欧美精品自拍| 99视频在线观看一区三区| 亚洲精品久久久蜜桃| 欧美搞黄网站| 亚洲婷婷免费| 欧美在线亚洲在线| 在线观看日韩av先锋影音电影院| 欧美一区91| 欧美高清不卡| 亚洲一区二区三区视频播放| 国产精品二区二区三区| 亚洲欧美日韩国产一区二区| 玖玖玖国产精品| 亚洲视频在线观看视频| 在线看片日韩| 国产精品家庭影院|