说明
简化版桶排序就是先开一个很大的数组,然后用户输入数据的时候,在数组的相应位置进行自增1。
比如需要排序的数据是5,6,4,5。假设数组是arr,那就是arr[5]++,arr[6]++,arr[4]++,arr[5]++
接下来就从头到尾遍历数组一遍,遇到arr[i]>=1的时候就输出,如果arr[i]=2,那就输出2次,arr[i]=3,那就输出3次,以此类推…
代码
#include<iostream>
using namespace std;
#define MAX 1000
int main(){
int arr[MAX];//假设我们需要排序的数据在0-1000之间
int n;//用户输入要排序的个数
int temp;//用户输入的数据
for(int i=0;i<MAX;i++){
arr[i]=0;//先把数组初始化为0
}
cin>>n;
for(int i=0;i<n;i++){
cin>>temp;
arr[temp]++;//在对应的位置上自增1,比如输入数据5,那就arr[5]++;
}
for(int i=0;i<MAX;i++){
for(int j=1;j<=arr[i];j++){
cout<<i<<" ";//输出排序后结果
}
}
return 0;
}