码迷,mamicode.com
首页 >  
搜索关键字:线性时间排序 计数排序 基数排序 桶排序    ( 1173个结果
后缀数组(基数排序)的具体分析
我看后缀数组,思想很容易懂,但是基数排序那边我确实理解了很久才理解,现在我写一份自己可以看懂的具体分析。第一步,首先将所有的位置上的值装入数组中,并记录排名为i的数为sa[i],第i个数的排名为rank[i].下面就要进行logn次的倍增操作,我们定义k为当前倍增长度基数排序,痛苦ing首先将每一对...
分类:其他好文   时间:2014-08-14 10:39:18    阅读次数:243
数据结构-各类排序算法总结[结局]
各类排序算法总结五.分配类排序->基数排序: 基数排序是一种借助于多关键码排序的思想,是将单关键码按基数分成“多关键码”进行排序的方法。基数排序属于”低位优先”排序法,通过反复进行分配与收集操作完成排序. 对于数字型或字符型的单关键字,可以看成是由多个数位或多个字符构成的多关键字, 此时可以采用这种“分配-收集”的办法进行排序,称作基数排序法。其好处是不需要进行关键字间的比较。 例如:对下列这组关...
分类:其他好文   时间:2014-08-13 22:28:17    阅读次数:305
算法导论 第8章 线性时间排序
/* * 算法导论 第八章 线性时间排序 * 计数排序、基数排序和桶排序 */ #include #include #include #include using namespace std; void printArray(int arr[], int len, char *str) { cout << str << endl; for (int i=0; i<len; i...
分类:其他好文   时间:2014-08-12 00:46:13    阅读次数:210
排序算法
基础知识: 排序:通过计算机手段将一组随机无序的数列变成有序的数列。常用排序算法有很多,主要有如下的几种: 包括插入排序,冒泡排序,选择排序,堆排序,归并排序,计数排序,基数排序,桶排序,快速排序等。 插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素...
分类:其他好文   时间:2014-08-11 14:45:42    阅读次数:282
[转]各种排序算法及其java程序实现
原文:http://blog.csdn.net/t12x3456/article/details/7430700各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. ...
分类:编程语言   时间:2014-08-10 21:10:51    阅读次数:429
变位词
题目描述: 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,比如bad和adb即为兄弟字符串,现提供一个字符串,如何在字典中迅速找到它的兄弟字符串,请描述数据结构和查询过程。 思路一:用计数排序 设计一个数组,对单词每个字母计数加1,对兄弟单词每个字母计数减去1,如果最后这个数组的计数是0,那么就为兄弟单词 bool isBrotherWord(string &str1, s...
分类:其他好文   时间:2014-08-09 02:36:47    阅读次数:255
桶排序算法
桶排序的基本思想 桶排序利用函数的映射关系,将待排序的数组分成了N个块(桶)。实际上,桶排序的f(k)值的计算,其作用就相当于快排中划分,已经把大量数据分割成了基本有序的数据块(桶)。然后只需要对每个桶中的少量数据做比较排序(比较排序:即在比较的基础上进行交换,达到排序效果)即可。 假如待排序列K= {49、 38 、 35、 97 、 76、 73 、 27、 49 }。这些数据全部在1—1...
分类:其他好文   时间:2014-08-09 00:19:17    阅读次数:267
计数排序与基数排序
计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。计数排序的基本思想就是对于每一个输入元素x,确定出小于x的元素个数。有了这一信息就可以把x直接放到它在最终输出数组中的位置上。例如,如果有17个元素小于x...
分类:其他好文   时间:2014-08-08 17:37:56    阅读次数:190
计数排序算法
基本思想: 统计数组data,小于data[i]的个数为N,则把data[i]放在第N+1个位置上面。 实用范围: 所有数都在[0,max]范围内,max为数组的最大值,适用于max不是很大的情况。 对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示: C++代码: #include using namespace...
分类:其他好文   时间:2014-08-08 16:09:56    阅读次数:202
几种排序算法的C++实现——快速排序、堆排序、基数排序
排序算法是非常常见的面试笔试问题,考查的一个人的基本功,本文将一些排序做了C++的实现,就当是做个学习总结吧。1、快速排序 快速排序的中心是填坑法,取一个数(这里选取第一个数)作为基准数temp,从队尾开始寻找第一个比基准数小的数a[j],交换a[j]和temp,然后队首开始查找第一个比temp大....
分类:编程语言   时间:2014-08-07 03:00:18    阅读次数:245
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!