剑指offer 2.4.1
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void sortAges(int a[],int n) 5 { 6 const int MAXAGE=99; 7 if(a==NULL||n<=0) 8 return; 9 int ageTimes[MAXAGE+1]; 10 int i,j,age,counts; 11 for(i=0; i<=MAXAGE; ++i) 12 ageTimes[i]=0; 13 //读入年龄放入数组中 14 for(i=0; i<n; ++i) 15 { 16 age=a[i]; 17 ageTimes[age]++; 18 } 19 //把排完序的结果写入数组中 20 int k=0; 21 for(i=0; i<=MAXAGE; ++i) 22 { 23 counts=ageTimes[i]; 24 for(j=0; j<counts; ++j) 25 { 26 a[k]=i; 27 k++; 28 } 29 30 } 31 32 } 33 34 int main() 35 { 36 int a[]= {10,10,3,4,5,6,6,72,2,4,43,2,2,1}; 37 int n=sizeof(a)/sizeof(int); 38 int i; 39 sortAges(a,n); 40 for(i=0; i<n; ++i) 41 printf("%d ",a[i]); 42 return 0; 43 }