码迷,mamicode.com
首页 >  
搜索关键字:线性时间排序 计数排序 基数排序 桶排序    ( 1173个结果
编程之美学习之快速找出故障机器
这种问题以及方法很常见。主要是思路要开阔,讲已知的问题抽象成数学模型或者函数表达式,这正是数学建模的真谛,problem solving(解决实际问题的能力)。法一:利用计数排序,用数组记下每个ID出现的次数,然后找出出现一次的那个ID,时空复杂度都是O(N)。现在如果数据量很大,那么这样的空间复杂度是无法被容忍的法二:利用两个相同的数异或结果为0,将所有的ID都异或一遍,显然最后剩下的值,即为出现...
分类:其他好文   时间:2015-04-29 17:12:47    阅读次数:143
排序算法Java实现(基数排序)
1 package sorting; 2 3 /** 4 * 基数排序 5 * 平均O(d(n+r)),最好O(d(n+r)),最坏O(d(n+r));空间复杂度O(n+r);稳定;较复杂 6 * d为位数,r为分配后链表的个数 7 * @author zeng 8 * 9 */10...
分类:编程语言   时间:2015-04-25 22:36:40    阅读次数:226
算法导论--第八章、计数排序
一、计数排序的基本思想是:对每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输出数组中的位置上了。例如,如果有17个元素小于x,则将x放在第18个位置即可。但是当存在几个元素相同时,会稍许不同,否则中间会漏掉元素。二、假设输入是一个数组A[1..n],A.length =...
分类:编程语言   时间:2015-04-23 19:26:36    阅读次数:141
leetcode Sort Colors
leetcode Sort Colorsleetcode Sort Colors计数排序注: 题目的要求是将 A 数组重新排列成有序, 而不是将排序的序列输出Sort ColorsGiven an array with n objects colored red, white or blue, so...
分类:其他好文   时间:2015-04-22 23:53:37    阅读次数:121
后缀数组学习笔记
妈呀被后缀数组虐的死去活来。。。一开始去看后缀树。。好像很麻烦的样子,后来再看后缀数组,理论好像很好懂的样子,不会实现呀。。 这充分证明了我有多傻逼,花了整整一天才看懂如何实现,还是因为我基数排序没学好?。。。 (update:然后又花了一天看懂求height。。。) 好好看这张图。。。很重要。。 无脑直接排序的时间复杂度是O(n^2logn)因为字串比较是O(n) 这里介绍...
分类:编程语言   时间:2015-04-22 09:33:43    阅读次数:132
排序算法的稳定性
首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。       其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,...
分类:编程语言   时间:2015-04-18 08:50:47    阅读次数:162
基数排序
(java版)import java.util.ArrayList;import java.util.List;public class radixSort { public static void sort(int[] a){ //首先确定排序的趟数 int max = a[0]; for(...
分类:编程语言   时间:2015-04-17 23:40:09    阅读次数:169
基数排序
//基数排序 #include #include #include #include #define maxn 100 using namespace std; int a[maxn]; int n=0; int bits=0; vector  barrel[10]; int bitnum(int n) {     int result=0;     while...
分类:编程语言   时间:2015-04-15 23:23:56    阅读次数:208
算法导论-- 线性时间排序(计数排序、基数排序、桶排序)
线性时间排序 1.计数排序 2.基数排序 3.桶排序...
分类:编程语言   时间:2015-04-14 19:42:38    阅读次数:249
基数排序
首先来看两个经典引理: 引理1:给定n个d位数,每一个数位可以取k种可能的值。基数排序算法能以 θ(d(n+k))的时间正确地对这些数进行排序。 引理2:给定n个b位数和任何正整数r θ((b/r)(n+2^r))时间内正确地对这些数进行排序。 下面是基数排序的LSD法(最低位优先)程序实现: #include #include using namespace std; //返回数字的第...
分类:编程语言   时间:2015-04-12 09:20:19    阅读次数:189
1173条   上一页 1 ... 91 92 93 94 95 ... 118 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!