#include<iostream>
#include<vector>
#include<algorithm>
//** 计数排序,不考虑数据特征,无脑排序,用的不多 */
using namespace std;
void BucketSort(vector<int> &, int, int);
int main()
{
vector<int>num{2, 1,1, 2, 11, 10, 11, 9, 4, 4, 8, 12, 13};
int right = num.size();
BucketSort(num, 0, right);
for(int i = 0; i < right; i++)
cout << num[i] << " " ;
cout << endl;
return 0;
}
void BucketSort(vector<int>& num, int left, int right)
{
int max = *max_element(num.begin(), num.end());
cout << "max == " << max << endl;
vector<int> help(max + 1, 0);
cout <<"help's initial is : " ;
for(int i = 0; i < max; i++)
cout << help[i] << " ";
cout << endl;
int begin = 0;
for(; left < right; left++){
help[num[left]]++;
}
cout <<"help's next value is : " ;
for(int i = 0; i < max; i++)
cout << help[i] << " ";
cout << endl;
for(int i = 0; i < max; i++){
if(help[i] > 0)
for(int j = 0; j < help[i]; j++)
num[begin++] = i;
}
}
C++算法(6)桶排序
最新推荐文章于 2024-07-17 19:29:01 发布