码迷,mamicode.com
首页 >  
搜索关键字:线性时间排序 计数排序 基数排序 桶排序    ( 1173个结果
【spoj705】 Distinct Substrings
【题目描述】给定一个字符串,计算其不同的子串个数。【输入格式】一行一个仅包含大写字母的字符串,长度=n或者所有后缀的排名都不同。 然后正常情况下k增加logN次,每次如果用计数排序只要O(N),一共O(NlogN)。 但是不会写计数排序啊QAQ。。所以用快排好了。。多加一个log,一般不会被卡的.....
分类:其他好文   时间:2015-03-30 22:58:49    阅读次数:277
大话桶排序 基数排序和计数排序
一:计数排序 (1)当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排...
分类:编程语言   时间:2015-03-29 16:39:57    阅读次数:212
常见的五类排序算法图解和实现(多关键字排序:基数排序以及各个排序算法的总结)
基数排序思想完全不同于以前的排序算法,可以说,基数排序也叫做多关键字排序,基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。两种方式:1、最高位优先,先按照最高位排成若干子序列,再对子序列按照次高位排序2、最低位优先:不必分子序列,每次排序全体元素都参与,不比较,而是通过...
分类:编程语言   时间:2015-03-29 01:51:12    阅读次数:156
各种排序算法的稳定性和时间复杂度小结
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择...
分类:编程语言   时间:2015-03-28 11:32:22    阅读次数:155
UVA - 10474 - Where is the Marble? (基数排序)
UVA - 10474 Where is the Marble? Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description Raju and Meena love to play ...
分类:编程语言   时间:2015-03-21 09:53:59    阅读次数:198
桶排序实现(没有优化)
桶排序算法主要使用在数据分布均匀的情况,这里假设输入数据的关键字全部分布在0~100之间,因此我们这里划分为十个同[0..9],存储排序,B[i][]中存放x/10==i的元素,再对*B[i]进行插入排序,复制到数组A中结束。插入排序代码(前面以给出):int InsertSort(int *a,int n){ //对长度为n的数组,进行插入排序,下标0~n-1 int i,j,ke...
分类:编程语言   时间:2015-03-20 23:48:25    阅读次数:195
算法总结——三大排序(快排,计数排序,归并)
快排:适用条件:方便...只要数字不是很多复杂度:O(nlogn) 每一层n复杂度,共logn层原理:利用一个随机数与最后面一个数交换,那么这个随机数就到了最后一位,然后循环,如果前面的数大于最后一个数,那么把这个数放到前面去,经过一次排序之后,前面的数都是大于最后一个的,然后对1到k和k+1到n进...
分类:编程语言   时间:2015-03-20 20:22:15    阅读次数:212
【LeetCode】Sort Colors 数组排序
题目:Sort color /*LeetCode sort colors 题目:输入一个数组,包含0,1,2分别代表红白蓝三种颜色,要求按照0,1,2的顺序,将同类颜色的连续排列 思路:计数排序,是一个遍历两遍的方法:可以先统计每种的数量,之后直接将这一范围内的所有值都赋值为相应的数字即可 遍历一遍的话可以在遍历的同时分别与0和2比较,从头和尾一起交换,1的在中间不用做处理; * */ ...
分类:编程语言   时间:2015-03-20 14:28:40    阅读次数:224
Hark的数据结构与算法练习之桶排序
算法说明桶排序的逻辑其实特别好理解,它是一种纯粹的分而治之的排序方法。举个例子简单说一下大家就知道精髓了。假如对11,4,2,13,22,24,20 进行排序。那么,我们将4和2放在一起,将11,13放在一起,将22,24,20放在一起。 然后将这三部分分别排序(可以根据实现情况任意选择排序方式,我...
分类:编程语言   时间:2015-03-20 08:07:50    阅读次数:168
计数排序+基数排序
这几天一直在写排序算法,从插入,冒泡,选择到归并和快速再到计数和基数排序。今天来写下计数排序和基数排序吧。 计数排序:对于一组小于k的数组,进行排序。这里要保证输入的关键值在[0..k]之间。貌似很简单,我们先不管什么是计数排序CountSort(A,1,n),先来看一下一段代码。 CountPrint(int *A,int n,int k)代码:void CountPrint(int *A,i...
分类:编程语言   时间:2015-03-19 13:18:52    阅读次数:150
1173条   上一页 1 ... 93 94 95 96 97 ... 118 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!