桶排序
2021-01-20 20:13
标签:splay center using webkit rand cpp func mono web 排序思想: 首先通过最大最小值数据范围 maxx-minn 按照每个桶平均装的数量 得出桶的数量。然后遍历数组 a[ ] ,装入桶中,进行桶内排序。 桶排序 标签:splay center using webkit rand cpp func mono web 原文地址:https://www.cnblogs.com/HappyKnockOnCode/p/12899796.html桶排序
1#include
2#include
3#include
4#include
5#include
6using namespace std;
7void bucketSort(int a[],int n)
8{
9 int maxx=-9999,minn=9999;
10 for(int i=0; i
12 if(maxx13 maxx=a[i];
14 if(minn>a[i])
15 minn=a[i];
16 }
17 /**根据数据范围得出桶的数量(最多10个元素1个桶)*/
18 int bucketNum=maxx/10-minn/10+1;
19
20 vectorint>v[bucketNum];
21 for(int i=0; i
23 int t=(a[i]-minn)/10;
24 v[t].push_back(a[i]);
25 }
26
27 printf("Sort Over:\n");
28 for(int i=0; i
30 /**
31 桶内排序,可以插入排序,也可以用排序函数
32 */
33 if(v[i].size())
34 {
35 sort(v[i].begin(),v[i].end());
36 for(int j=0; j
38 }
39 }
40}
41int main()
42{
43 int n=10;
44 int a[12];
45 for(int i=0; i
47 for(int i=0;i
49 bucketSort(a,n);
50 return 0;
51}