这是一个简单的桶排序,桶排序就是先开一个足够大的数组全部赋值为0表示一次都没有出现然后将数据输入,在输入的时候将数字对应的数组中的数据加一,表示出现了几次。注意:这个简单的桶排序需要知道排序的范围。当要排序的范围非常非常大的时候就不要用这个方法了,因为当排序范围非常大的时候这个方法就变得很浪费空间。而且这个简单的桶排序方法只是针对整数范围并且知道排序范围而且范围比较小的情况。
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int num[1001] = {0},n,number;
cin>>n; //输入数据的个数
for(int i=0;i<n;i++){
cin>>number;
num[number]++;
}
//依次遍历从1000到0的桶
for(int i=1000;i>0;i--){
for(int j=1;j<=num[i];j++){
cout<<i<<" "; //出现了几次就打印几次
}
}
return 0;
}