桶排序是一种特别逗比的方法,至少现在我是这么认为…
桶排序:
一个例子你就懂。
8个数 3 6 2 7 9 8 1 1
申请一个9位的数组
int a[9];初始化所有a的值都为 0
然后3出现一次,就把a[3]的值加1
最后的结果是 a[3] = 1;a[6] = 1… ;a[1] = 2 //因为a[1]出现了两次
然后遍历,得到a[i]的值,把i输出a[i]遍即可
我相信聪明人直接看代码就会懂了~~~
#include <iostream>
using namespace std;
int main(){
int a[10],res[100000];
for(int i=0;i<100000;i++){ //代表着可以排序100000以内的数据
res[i] = 0; //初始化res数组
}
for(i=0;i<10;i++){
cin>>a[i]; //输入代排序的数据
res[a[i]]++;
}
for(i=0;i<100000;i++){
for(int j=0;j<res[i];j++){
cout<<i<<" ";
}
}
return 0;
}
运行结果: