算法思路:将数字存进对应的桶中(数组对应索引)。对数组进行顺序输出即可。
优点:快速 时间复杂度为o(i+j);
使用范围:因为需要确定桶数(即数组大小),所以对于数据量较大的排序较浪费空间。即 相对来说适合数据量较小的情况
例子:对0-10任意个数进行排序。
实现:1.有多少个数,创建多大的数组(桶)
2.for循环依次存入数组中。
3.顺序输出数组
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10];
int n,b;
cin>>n; //因为n小于10,所以此输入为小于10的数。
for(int i=0;i<10;i++)
a[i]=0; //数组初始化
for(int i=0;i<n;i++){
cin>>b; //桶排序录入
a[b]++;
}
for(int i=0;i<10;i++){
for(int j=1;j<=a[i];j++){ //输出
cout<<i<<" ";
}
}
return 0;
}