摘要: 比较全面的gdb调试命令用GDB调试程序GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地 阅读全文
posted @ 2013-03-26 20:22 Eric1990 阅读(111) 评论(0) 推荐(0)
摘要: Introduction to the Text Editing for ProgrammersProfessor Norm MatloffDept. of Computer ScienceUC Davismatloff@cs.ucdavis.eduBasic precepts:Programming should be enjoyableprocess, but takes a lot of time.To save time and frustation, makegood useof a sophisticated text editor.You should use advanced 阅读全文
posted @ 2013-03-24 21:39 Eric1990 阅读(211) 评论(0) 推荐(0)
摘要: How To Become A HackerEricStevenRaymondThyrsus Enterprises<esr@thyrsus.com>Copyright © 2001 Eric S. RaymondRevision HistoryRevision 1.4420 May 2012esrUpdated the critique of Java.Revision 1.4307 Feb 2011esrPython passed Perl in popularity in 2010.Revision 1.4222 Oct 2010esrAdded "His 阅读全文
posted @ 2013-03-24 21:38 Eric1990 阅读(233) 评论(0) 推荐(0)
摘要: What every computer science major should know[article index] [email me] [@mattmight] [+mattmight] [rss]Given the expansive growth in the field, it's become challenging to discern what belongs in a modern computer science degree.My own faculty is engaging in this debate, so I've coalesced my 阅读全文
posted @ 2013-03-24 21:35 Eric1990 阅读(261) 评论(0) 推荐(0)
摘要: 简介哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。一般来说,对任意一类的数据存在一个理论上完美的哈希函数。这个完美的哈希函数定义是没有发生任何碰撞,这意味着没有出现重复的散列值。在现实中它很难找到一个完美的哈希散列函数,而且这种完美函数的趋近变种在实际应用中的作用是相当有限的。在实践中人们普遍认识到,一个完美哈希函数的哈希函数,就是在一个特定的数据集上产生的的碰撞最少哈希的函数 阅读全文
posted @ 2012-12-19 10:30 Eric1990 阅读(552) 评论(0) 推荐(0)
摘要: 字符串的算法一般大公司都会考到,我们首先要想到高效的hash。如百度查找一组字符串是否出现在某个文本中,这个不是考什么kmp,他们想听到的是hash。趋势科技考的是从某个文本中删除一组字符串,我想也是要hash吧。1 概述链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。设计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无法比拟的,Hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然 而Hash函数是Hash链表最核心的部分,本文尝试分析一些经典软件中使用到的字符串Hash函数在执行效率、离散性、 阅读全文
posted @ 2012-12-19 10:27 Eric1990 阅读(205) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/joylnwang/article/details/6801720提到多模式匹配算法,就得说一下Wu-Manber算法,其在多模式匹配领域相较于Aho-Corasick算法,就好象在单模式匹配算法中BM算法相较于KMP算法一样,在绝大多数场合,Wu-Manber算法的匹配效率要好于Aho-Corasick算法。这个算法是由吴升(台湾)和他的导师Udi Manber在九十年代提出。当然,要想充分理解WM算法如何加快多模式匹配的效率,还需要对BM算法的深刻了解,可以参考我的另一篇文章《BM算法详解》。在BM算法中引入的坏字符跳转概念,是BM算法能够在 阅读全文
posted @ 2012-12-17 11:25 Eric1990 阅读(509) 评论(0) 推荐(0)
摘要: 转自:http://www.cnblogs.com/shy-/archive/2012/05/01/2485140.html首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。如果你对KMP算法和了解的话,应该知道KMP算法中的next函数(shift函数或者fa 阅读全文
posted @ 2012-12-13 12:57 Eric1990 阅读(171) 评论(0) 推荐(0)
摘要: 星期五的时候,在网上看别人的总结看了很久也没有什么收获,不过星期六看了clj原汁原味的论文,终于明白了(网上的总结只写了大致做法,比较难理解).后缀自动机实质上是字母树,记录的字符串是某个字符串s的所有后缀.这里以字符串ACADD为例:这样很浪费空间和时间(实际上都是O(n^2)).但是,注意:这棵字母树的结点虽然多,但大部分结点都只有一个儿子,而且有很多段是一样的.那么,利用公共部分,就可以对空间进行压缩,具体地说,就是把自己连到儿子的边删掉(并把该儿子及其后代删掉),再把这条边连到别的子树,这样就能充分利用公共部分,节省空间.但是,如何保证这样做和原来的笨做法是等价的,又如何把时间复杂度和 阅读全文
posted @ 2012-12-12 10:03 Eric1990 阅读(229) 评论(0) 推荐(0)
摘要: BNDM算法的搜索方法与BDM算法相同,但它使用了位并行来识别子串。 与原始的BDM相比,BNDM更简单,内存用量更少,具有更好的引用局部性,并且易于扩展到更复杂的模式串的情形。 在当前搜索窗口内,设已读入的字符串为u,BNDM算法维护一个集合,记录u在prv中的所有出现位置。同shift—and算法一样,该集合可以用一个位向量D来表示。如果子串pj...pj+|u|-1等于u,那么D的第m-j+1位是1,表示p的位置j是一个活动状态。 当读入一个新的文本字符σ时,要从D更新到D'。D‘的一个活动状态j对应于σu在模式串中的一个起始位置,也就是说: * u出现在模式串的位置j+1,即. 阅读全文
posted @ 2012-12-11 20:31 Eric1990 阅读(539) 评论(0) 推荐(0)