文章目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//实现上万个人的年龄的排序
#include<iostream>
using namespace std;
void ageSort(int *a,int n){
if(a==NULL||n<=0)
return;
const int Maxage=99;
int countAge[Maxage+1];//0~99,一共100个数
for(int i=0;i<Maxage+1;i++){//每种年龄出现的次数
countAge[i]=0;
}
for(int i=0;i<n;i++){
int age=a[i];
if(age<0||age>Maxage)
return;//输入不合法
countAge[age]++;
}
int index=0;//排好序的下标
for(int i=0;i<Maxage;i++){
for(int j=0;j<countAge[i];j++){//,来控制每个年龄出现的次数
a[index++]=i;
}
}
}
int main(){
int a[9]={3,4,5,6,7,5,4,3,2};
ageSort(a,9);
for(int i=0;i<9;i++){
cout<<a[i]<<" ";
}
return 0;
}
文章目录