排序算法-桶排序
2018-03-31 16:14
183 查看
Bucket sorting(桶排序)
理论讲解比如一场考试,分数从0-10;
如果一个人得了3分,那么a[3]就+1,代表得3分的有一个人
如果一个人得了5分,那么a[5]就+1,代表得5分的有一个人
如果又有个人得了5分,那么a[5]就再+1,代表得5分的有2个人
如果又有个人得了8分,最终结果如下
依次输出即可
#include "stdafx.h" #include "iostream" using namespace std; int main() { int i,j,a[11] = {0}; for (i = 0; i < 5; i++) { cin >> j;//input a[j] ++;//输入是多少就在a[多少]++ } for (i = 10; i >=0; i--)//output from big to small { for (; a[i] > 0;a[i]--) cout << i; } return 0; }
总结
bucket sorting 实际中用的不多,有致命的缺点就是:如果我想比较范围很大 0-9999;那么我将定义a[10000]这么大的数组,假如我只想排几个数,太不值得。时间复杂度 O(N+M): N多少个数,M是数组范围。或者我想排序里面有浮点数,那么久困难了。
相关文章推荐
- 三种线性的非基于比较的排序算法:计数排序、桶排序与基数排序
- 排序算法(三):计数排序与桶排序
- PHP排序算法系列:桶排序
- 还是算法:高级排序算法:计数,基数和桶排序
- 排序算法之桶排序
- Java排序算法——桶排序
- ~排序算法——桶排序~
- 常见排序算法导读(11)[桶排序]
- 排序算法_0,桶排序
- 漫谈经典排序算法:五、线性时间排序(计数、基数、桶排序)
- 排序算法-桶排序
- 排序算法汇总--冒泡,插入,归并,快速,堆,计数,基数,桶排序
- 排序算法_桶排序
- 排序算法(插入排序、shell排序、冒泡排序、选择排序、合并排序、堆排序、快速排序、计数排序、基数排序、桶排序)
- 常见排序算法——桶排序(箱子排序)bucket Sort
- Java排序算法(十)--桶排序
- 数字的排序算法—计数排序、桶排序和基数排序
- 排序算法(计数排序,基数排序,桶排序)
- 漫谈经典排序算法:五、线性时间排序(计数、基数、桶排序)
- [排序算法]--桶排序的Java实现