简介:
如图所示,桶的位置是有序的。借助有序的桶,我们便可以把乱序内容有序放置。但是这种排序算法问题也很明显,即有序桶的个数要足够多,倘若待排序内容比较集中便会浪费大量的内存空间。
复杂度分析:
设待排序内容为n个,桶个数为k个。则算法复杂度为O(n+k)。
代码:
#include<iostream>
using namespace std;
#define Len 100
void set_arrs(int * arr, int num){//初始化数组
for(int i = 0; i < Len; i++)
*(arr + i) = num;
}
int main(){
int int_arrs[Len];
set_arrs(int_arrs, 0);
for(int i = 0; i < 5; i++){
int temp;
cin >> temp;
int_arrs[temp]++;
}
for(int i = 0; i < Len; i++){
while(int_arrs[i]-- > 0){//打印重复出现的内容
cout << i << " ";
}
}
return 0;
}