算法
database_system
这个作者很懒,什么都没留下…
展开
-
桶排序
桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶) 。然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) ,那么该关键字k就作为B[i]中的元素(每个桶B[i]都是一组大小为N/M的序列)。接着对每个桶B[i]中的所有元素进行比较排序(可以使用快排)。然后依次枚举输出B[0]....B[M转载 2012-09-16 12:46:03 · 807 阅读 · 0 评论 -
计数排序
1,。假设要排序的数组为 A = {1,0,3,1,0,1,1} 这里最大值为3,最小值为0,那么我们创建一个数组C,长度为4. 然后一趟扫描数组A,得到A中各个元素的总数,并保持到数组C的对应单元中。 比如0 的出现次数为2次,则 C[0] = 2;1 的出现次数为4次,则C[1] = 4 由于C 是以A的元素为下标的,所以这样一做,A中的元素在C中自然就成为有序的了,这里我们转载 2012-09-18 12:01:46 · 312 阅读 · 0 评论 -
找出第k大的数字
1,假设我们所要找的数据集合是有限的集合,并且可以同时放入内存中,后续的海量数据我们再讨论。 题设条件,根据算法导论,利用顺序统计法,左边的数据会大于特定的数字,右边会小于特定数字,然后我们对比数字对应的下标跟K,在选择递归原创 2012-09-21 19:59:56 · 1173 阅读 · 0 评论 -
找出 k个最小的数据
1,从海量数据中找出k个最小的数据,前提是硬盘能够装下这些海量数据,k个最小的数据能够同时装入内存。这里我们采用的策略是建立大顶堆。原创 2012-09-22 14:20:52 · 1098 阅读 · 0 评论 -
BAIDU--suggestion function
今年的百度实习生笔试题中有个题是: 相信大家都使用过百度搜索框的suggestion功能,百度搜索框中的suggestion提示功能如何实现?请给出实现思路和主要的数据结构、算法。有什么优化思路可以使得时间和空间效率最高? 这个题的基础实现方法是使用Trie树, 原理部分摘用别的. (代码部分我增加了findTips功能, 这里采用方法1,空间要求最大 26^n,,若是汉字转载 2013-04-26 14:24:31 · 757 阅读 · 0 评论 -
二叉树排序
二叉树排序时间复杂度为o(nlogn),空间复杂度为o(n) 其思想就是构建一棵二叉排序树,然后我们中序输出就行了。转载 2013-04-26 16:25:36 · 648 阅读 · 0 评论