码迷,mamicode.com
首页 > 其他好文 > 详细

计数排序

时间:2014-05-21 18:07:55      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   c   code   java   

 计数排序的基本思想是:统计一个数序列中小于某个元素a的个数为n,则直接把该元素a放到第n+1个位置上。当然当过有几个元素相同时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数

 

bubuko.com,布布扣
 1 #include <stdio.h>
 2 void sort(int *A, int *B, int array_size, int k)
 3 {
 4         int C[k+1], i, value, pos;
 5         for(i=0; i<=k; i++)
 6         {
 7             C[i] = 0;
 8         }
 9         for(i=0; i< array_size; i++)
10         {
11             C[A[i]] ++;
12         }
13         for(i=1; i<=k; i++)
14         {
15             C[i] = C[i] + C[i-1];
16         }
17         for(i=array_size-1; i>=0; i--)
18         {
19             value = A[i];
20             pos = C[value];
21             B[pos-1] = value;
22             C[value]--;
23         }
24 }
25 
26         
27 int main()
28 {
29         int A[8] = {2, 5, 3, 0, 2, 3, 0, 3}, B[8], i;
30         sort(A, B, 8, 5);
31         for (i=0; i<= 7; i++)
32         {
33             printf("%d ", B[i]);
34         }
35         printf("\n");
36         return 0;
37 }
bubuko.com,布布扣

 

对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示:
bubuko.com,布布扣

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

 

 

 

计数排序,布布扣,bubuko.com

计数排序

标签:style   blog   class   c   code   java   

原文地址:http://www.cnblogs.com/xiaojingang/p/3724517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!