http://blog.csdn.net/houapple/article/details/6480100桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排...
分类:
其他好文 时间:
2014-08-04 14:01:07
阅读次数:
292
这道题当时拿着一看,想都没想就上了前缀和,但看了数据范围,还是必挂的节奏。其实,应对每个前缀和取模,再桶排序一次。还有 有负数#include #include #include #include #include using namespace std;const int maxn = 50000...
分类:
其他好文 时间:
2014-07-16 20:52:38
阅读次数:
149
任意一个比较排序算法在最坏情况下,都需要做 Ω(n lg n) 次的比较,堆排序和合并排序都是渐进最优的比较排序算法。本文介绍三种以线性时间运行的算法:计数排序、基数排序和桶排序,这些算法都用非比较的一些操作来确定排序顺序。因此,下界 Ω(n lg n) 对它们是不适用的。
分类:
其他好文 时间:
2014-07-14 15:57:36
阅读次数:
263
计数排序在输入n个0到k之间的整数时,时间复杂度最好情况下为O(n+k),最坏情况下为O(n+k),平均情况为O(n+k),空间复杂度为O(n+k),计数排序是稳定的排序。
桶排序在输入N个数据有M个桶时,如果每个桶的数据接近N/M个且桶内使用基于比较的排序,则桶排序的时间复杂度为O(N+M*N/M*log(N/M)).如果N=M时,每个桶只有一个数据,时间复杂度降低为O(N).
桶排序的时间...
分类:
编程语言 时间:
2014-07-13 17:19:49
阅读次数:
215
桶排序
桶排序(Bucket Sort)是对基数排序的一个变种。在排序过程中没有用到计数数组,而是用不同的桶来暂时存储关键字。看一个示意图:
整个过程就是在不断地分配、收集。
在实际应用中,根据桶的创建策略,桶排序也有不同的写法。下面给出两种不同的桶创建方式。一、使用静态队列创建桶。二、使用二维数组模拟桶。...
分类:
其他好文 时间:
2014-07-12 21:48:07
阅读次数:
352
一、计数排序
稳定、 当输入的元素是n 个小区间(0到k)内整数时,它的运行时间是 O(n + k),空间复杂度是O(n)。
const int K = 100;
//计数排序:假设输入数据都属于一个小区间内的整数,可用于解决如年龄排序类的问题
//Input:A[0, ..., n-1], 0 <= A[i] < K
//Output:B[0, ..., n-1], sorting of A...
分类:
其他好文 时间:
2014-07-08 21:24:36
阅读次数:
232
之前我们介绍了几种O(nlgn)的排序算法:快速排序、合并排序和堆排序,本节我们介绍基于比较的排序算法的下界以及几个线性时间的排序算法——计数排序、基数排序、桶排序。...
分类:
其他好文 时间:
2014-07-08 14:10:28
阅读次数:
243
First Missing Positive:Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] retu...
分类:
其他好文 时间:
2014-07-01 13:13:59
阅读次数:
218
2014.06.17 06:42简介: 基数排序是一种非比较算法,通过多轮的分配与合并来排序整个数组。应用范围比较窄,根据Wikipedia的说法,它只适合整数排序。描述: 基数排序和桶排序有点类似,都是将元素按照特定依据分配到多个桶中。但它和桶排序的区别,在于它要进行不止一次的分配与合并。每次.....
分类:
编程语言 时间:
2014-06-17 21:27:20
阅读次数:
392