算法理论
文章平均质量分 51
baisung
只为记录
展开
-
【数据结构】堆的应用
1、堆排序升序建立大顶堆,逆序建立小顶堆。建堆完毕后,调换堆顶和堆尾元素位置,并且将堆得大小减1重复第2步,共进行n-1次,排序完成2、TOP K问题求最大的前K个元素,建立K大小的小顶堆;求最小的前K个元素,建立K大小的大顶堆。例1:从海量数据(整数)中找出最大的200个数。解:读入200个数,建立小顶堆依次读入后续元素,与堆顶比较,若原创 2012-06-17 12:53:55 · 1313 阅读 · 0 评论 -
【排序算法】外部排序二 —— 外部排序技术之多路归并
外部排序技术之多路归并重点:败者树的创建调整函数1.外部排序概述外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装人内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行归并排序。2.转载 2012-06-16 01:17:40 · 2561 阅读 · 0 评论 -
【排序算法】外部排序一 —— 外部排序介绍
外部排序 我们一般提到排序都是指内排序,比如快速排序,堆排序,归并排序等,所谓内排序就是可以在内存中完成的排序。RAM的访问速度大约是磁盘的25万倍,我们当然希望如果可以的话都是内排来完成。但对于大数据集来说,内存是远远不够的,这时候就涉及到外排序的知识了。 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储转载 2012-06-16 01:13:44 · 1209 阅读 · 0 评论 -
堆与败者树比较
看过败者树的实现后,有个问题外部排序为什么不用堆而用败者树进行K路归并?用堆有什么坏处,还是败者树有什么好处?关于败者树,有点非常重要:每个内部节点记录的是其左子树或者右子树的最大或者最小值。就像堆得基本性质:根节点大于或者小于其左右子树的节点值。败者树也是完全二叉树的形式,可以采用数组的形式实现,由于不可能存在度为1的内节点(不然它的孩子跟谁比啊),所以内节点个数=叶子节点(元素个数)-转载 2012-06-17 17:32:54 · 5692 阅读 · 1 评论 -
逆序对计数算法 -- 分治策略的应用
1、逆序对的定义逆序对即序列中ai与aj,iaj,—— 就是序列排列在前面的元素,大于后面的元素。2、朴素算法2.1 算法描述逆序对的朴素算法即暴力法,针对每个元素,遍历该元素后续的所有元素查找计算相当该元素的逆序对,如下图所示:2.2 算法分析时间复杂度O(n^2),空间复杂度O(1)3、归并排序法 -- 分治法原创 2012-06-25 02:02:42 · 4537 阅读 · 0 评论 -
【字符串处理】规则表达式的实现 -- 有限自动状态机
规则表达式在搜索模式串中可谓用途极广,那么他究竟通过什么算法达到那么大的威力呢?答案就是字符串的额“有限自动状态机”,确切的说是模式串的有限自动状态机。所谓模式串就是你感兴趣的特定字符串,比如在谋篇文章中搜索"bai",这是模式字符串。对于这种简单的串直接采用字符串匹配算法(例如KMP)之类的就可以解决了,采用KMP的时间复杂度是O(n+m),其中n是原串长度,m是模式串长度,如果m=O(原创 2012-06-22 23:39:18 · 1573 阅读 · 0 评论 -
【算法理论】拟阵的理解
CLRS在讲贪心算法的时候,提到了贪心算法的理论基础是一种叫做拟阵的结构,凡是符合该结构的模型均可采用贪心算法。当然,它也提到该理论并不能完全覆盖贪心所能使用的全部范围 -- 例如活动选择和huffman编码就不能应用该理论。这个只是CLRS上讲的,具体为什么不能使用,需要思考一下。活动选择问题不是拟阵。集合A是独立的当且仅当集合中所有的活动室相互兼容的,则A必然具有遗传性。但是这原创 2012-06-24 16:35:25 · 4818 阅读 · 0 评论 -
数据结构与算法复习(7)—— 并查集
数据结构与算法复习(7)—— 并查集Posted by chenyajun in 数据结构与算法 | Tags: 并查集http://hi.baidu.com/xiafb/blog/item/96649c50562b95688435242b.html参考算法导论第 21 章。复杂度增长慢,几乎是线性的,路径可以压缩,免得寻找父节点太花时间,它有一些其它的扩展,特别是转载 2012-06-14 00:45:48 · 436 阅读 · 0 评论 -
数据结构与算法复习(22)—— 树状数组
数据结构与算法复习(22)—— 树状数组Posted by chenyajun in 数据结构与算法 | Tags: 树状数组需要熟练掌握,下面是不错的文章:树状数组上的二分法http://cylixstar.blogbus.com/logs/54695632.html我的标签: 树状数组http://www.cnblogs.com/zgmf_x20a/转载 2012-06-14 00:47:35 · 437 阅读 · 0 评论 -
数据结构与算法复习(17)—— polya 与组合数学
数据结构与算法复习(17)—— polya 与组合数学Posted by chenyajun in 数据结构与算法 | http://hi.baidu.com/gugugupan/blog/item/e229b10bfb30091795ca6bc1.htmlhttp://hi.baidu.com/gugugupan/blog/item/999acf514396ec54103转载 2012-06-14 00:50:32 · 407 阅读 · 0 评论 -
数据结构与算法复习(3)—— 线段树
数据结构与算法复习(3)—— 线段树Posted by chenyajun in 数据结构与算法 | Tags: 线段树http://www.cppblog.com/MemoryGarden/archive/2009/04/11/79565.aspxhttp://www.notonlysuccess.com/?p=59http://edu.codepub.com转载 2012-06-14 00:51:58 · 414 阅读 · 0 评论 -
数据结构与算法复习(10)—— 后缀数组与字符串问题
数据结构与算法复习(10)—— 后缀数组与字符串问题Posted by chenyajun in 数据结构与算法 | 放此待查。RMQ 问题http://www.notonlysuccess.com/?p=356利用后缀数组求解一个字符串中最长重复子串问题http://cylixstar.blogbus.com/logs/28350301.htmlhttp:转载 2012-06-14 00:47:03 · 406 阅读 · 0 评论 -
数据结构与算法复习(8)—— 各种 hash 算法
数据结构与算法复习(8)—— 各种 hash 算法Posted by chenyajun in 数据结构与算法 | Tags: hash ,哈希可扩展 hash;一致性哈希;布鲁姆过滤器;树的哈希;robin-karp 算法。转载 2012-06-14 00:49:01 · 450 阅读 · 0 评论 -
数据结构与算法复习(20)—— KMP 与字符串算法及其扩展
数据结构与算法复习(20)—— KMP 与字符串算法及其扩展Posted by chenyajun in 数据结构与算法 | Tags: KMP务必非常熟悉 KMP 算法。http://richardxx.yo2.cn/articles/kmp%e5%92%8cextend-kmp%e7%ae%97%e6%b3%95.htmlhttp://richardxx.yo2转载 2012-06-14 00:50:06 · 482 阅读 · 0 评论 -
数据结构与算法复习(14)—— 二分匹配与路径覆盖
数据结构与算法复习(14)—— 二分匹配与路径覆盖Posted by chenyajun in 数据结构与算法 | 二分匹配常见的集中情形:最大匹配,最佳匹配。最小覆盖: 最小覆盖要求用最少的点(X 集合或 Y 集合的都行)让每条边都至少和其中一个点关联。可以证明:最少的点(即覆盖数)= 最大匹配数,这就是所谓 Konig 定理。最小路径覆盖:用尽量少的不相交简单路径覆转载 2012-06-14 00:51:20 · 546 阅读 · 0 评论 -
AC 自动机算法详解(转)
AC 自动机算法详解(转)首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指转载 2012-06-14 00:54:31 · 419 阅读 · 0 评论 -
【算法与数据结构】TO DO List
1、外排的实现置换选择排序,K路归并(败者树或者堆实现),以及文件的切割。2、B树、B+树的实现B树、B+树到底实现来干什么?文件已经是操作系统在管理了,缓存对使用者是透明的,用这两种结构的实战意义是什么?或者说有什么实际问题可以解决?FASTDB的源代码参考,sqlite的源代码参考,P树的定义及应用场景3、huffman树的应用最优前缀编码、原创 2012-06-17 21:18:12 · 868 阅读 · 0 评论