码迷,mamicode.com
首页 > 编程语言 > 详细

[数据结构]计数排序

时间:2015-01-20 21:46:30      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

一,计数排序

计数排序

 

[cpp] view plaincopy技术分享技术分享
 
  1. #include <stdio.h>  
  2. void COUNTINGSORT(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. int main()  
  27. {  
  28.         int A[8] = {2, 5, 3, 0, 2, 3, 0, 3}, B[8], i;  
  29.         COUNTINGSORT(A, B, 8, 5);  
  30.         for (i=0; i<= 7; i++)  
  31.         {  
  32.             printf("%d ", B[i]);  
  33.         }  
  34.         printf("\n");  
  35.         return 0;  
  36. }  


适用范围:待排序的数最大值和最小值之差大小有限。

[数据结构]计数排序

标签:

原文地址:http://www.cnblogs.com/zhiliao112/p/4237187.html

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