用空间换取时间
using namespace std;
void SortAges(int ages[],int length)
{
if(ages == NULL || length <= 0)
return;
const int oldestAge = 99;
int timesOfAge[oldestAge + 1];
for(int i=0;i<=oldestAge;++i)
timesOfAge[i] = 0;
for(int i=0;i<length;++i)
{
int age = ages[i];
if(age < 0 || age > oldestAge)
printf(" error\n");
++timesOfAge[age];
}
int index = 0;
for(int i =0;i<=oldestAge;++i)
{
for(int j=0;j<timesOfAge[i];++j)
{
ages[index] = i;
++index;
}
}
}
void test()
{
int ages[14] = {11,1,2,3,2,2,3,11,11,18,4,2,2,3};
SortAges(ages,14);
for(int i=0;i<14;i++)
printf("%d ",ages[i]);
printf("\n");
}