桶排序
桶排序(Bucket Sort)假设输入数据服从均匀分布,然后将输入数据均匀地分配到有限数量的桶中,然后对每个桶再分别排序,对每个桶再使用其他的排序算法,最后将每个桶中的数据有序的组合起来。前面了解到基数排序假设输入数据属于一个小区间内的整数,而桶排序则是假设输入是由一个随机过程生成,该过程将元素均匀的分布在一个区间[a,b]上。由于桶排序和计数排序一样均对输入的数据进行了某些假设限制,...
分类:
编程语言 时间:
2015-11-20 12:48:19
阅读次数:
339
Procedure SORTSK { read(I[1],I[2],...,I[k]); read(S[1,I[1]],S[2,I[2]],...,S[k,I[k]]) 置桶B[1],B[2],...,B[n]为空; for(i=1;i<=k;i++) { j=I[i]; for(h=1;h<=j;...
分类:
编程语言 时间:
2015-11-10 17:41:06
阅读次数:
174
一道比较经典的数据结构题。可以用多种方式来做。一,分桶法(平方分解)。根据数字x的大小和区间内不大于x的数字数量cnt的单调性,可知第k大数kth对应的cnt应该满足cnt≥k,且kth是满足条件的最小的一个,可以二分下界。关键在于高效找出cnt,对于每个完整的桶,排序以后二分,不完整的桶就直接暴力...
分类:
其他好文 时间:
2015-11-07 16:07:44
阅读次数:
315
原题链接在这里:https://leetcode.com/problems/maximum-gap/桶排序(bucket sort)假设有N个元素A到B。那么最大差值不会大于ceiling[(B - A) / (N - 1)]令bucket(桶)的大小len =ceiling[(B - A) / (...
分类:
其他好文 时间:
2015-11-05 06:30:50
阅读次数:
247
排序,说起来每个人都不陌生。在我们生活中也可以看到很多排序的例子,比如你去超市要按到来的时间早晚排队啦,又比如你去买彩票要选号码啦……总之,这个社会的所有事情都有法则,而排序正是我们去实现这些法则的有效途径。对我们来说,排序,是一堆数据的有序排列,看似十分..
分类:
编程语言 时间:
2015-11-02 07:00:38
阅读次数:
234
第一部分基础知识 插入排序(增量式方法) 归并排序(递归技术)、分治法第二部分排序和顺序统计学 堆排序、堆(优先级队列) 快速排序 计数排序、基数排序、桶排序第三部分数据结构 栈、队列、链表 树 散列表 二叉查找树 红黑树第四部分高级设计和分析技术第五部分高级数据结构第六部分图算...
分类:
编程语言 时间:
2015-10-29 21:46:01
阅读次数:
192
桶排序,顾名思义,为要拍排序数组分配一些的”桶“来排序,什么意思呢?假如你有一个数组,其中包含10个元素,其中最大的数字是90,你就分配个90个以上的桶(假如定义一个int a[101]),你可以看到,10个数定义一个含100个元素的数组用来排序(当然,a[100]随便啦,你定义int a[100]...
分类:
编程语言 时间:
2015-10-18 22:55:06
阅读次数:
233
http://www.cnblogs.com/sevenyuan/archive/2009/12/04/1616897.html日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。冒泡排序是一种简单的排序算法。它重...
分类:
编程语言 时间:
2015-10-07 15:59:33
阅读次数:
239
稳定排序:*泡沫排序(bubble sort)— O(n²)*插入排序 (insertion sort)— O(n²)*桶排序 (bucket sort)— O(n);需要O(k)额外空间*计数排序(counting sort) — O(n+k);需要O(n+k)额外空间*合并排序 (merge s...
分类:
编程语言 时间:
2015-09-22 14:21:28
阅读次数:
280
啊哈!算法之快速排序与桶排序1.快速排序算法快速排序由 C. A. R. Hoare(东尼·霍尔,Charles Antony Richard Hoare)在1960 年提出,之后又有许多人做了进一步的优化。在数列种随机找出一个基准数,因为数列是杂乱的,所以取首项为基准数。从后往前找到比基准数大的位...
分类:
编程语言 时间:
2015-09-13 02:02:39
阅读次数:
339