摘要:
void fun( int input) { if (input >= 14) fun(input/14); printf("%c","0123456789ABCD"[input%14]); } 阅读全文
摘要:
有时要帮朋友处理一下U盘,他们的U盘经常被病毒感染后,U盘内的所有文件都不见了,只有一些快捷方式,偶尔一次还可以接受,经常干这样的事就觉得很麻烦了,尤其是被隐藏的文件特别多的时候。今天中午还有个朋友让我帮他恢复U盘中的隐藏文件。。。 所以今天抽空写了个程序,把这些活让程序去干。 程序说明: 1.程序可以自动检测U盘盘符,自己也可以进行更改 2.程序可以恢复U盘中的所有隐藏数据 3.程序会删除U盘中... 阅读全文
摘要:
来源:http://blog.programfan.com/article.asp?id=15762模式匹配的KMP算法详解这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法。大概学过信息学的都知道,是个比较难理解的算法,今天特把它搞个彻彻底底明明白白。注意到这是一个改进的算法,所以有必要把原来的模式匹配算法拿出来,其实理解的关键就在这里... 阅读全文
摘要:
预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局... 阅读全文
摘要:
常用字符串搜索算法介绍
字符串搜索或匹配是经常用到的技术,因此也发展了多个算法,介绍几个著名的算法。
1.单模式匹配
就是在一些文本中查找某一个子字符串的算法,效率较高的有以下几种。
KMP算法:全称Knuth-Morris-Pratt算法 预处理时间Θ(m) 匹配搜索时间 Θ(n)
BM算法:全称Boyer-Moore string search algorithm 预处理时间Θ(m + |Σ|) 匹配搜索时间Ω(n/m), O(n)
2. 有限模式集合匹配
就是在字符串中查找多个子字符串的算法,常用于查找字典中的单词和一些脏字匹配算法
Aho-Corasick算法:这是一种字典匹配算法,它用于在输入文本中查找字典中的字符串。时间复杂度是线性的。
基本原理:该算法利用类似后缀树的方法构造一个trie结构,匹配时利用该结构来搜索。
Commentz-Walter 算法:详细未知
Rabin-Karp string search算法:该算法最差复杂度不好,因此运用的并不广泛。
以上资料来源于维基百科,感兴趣的可以搜索维基百科词条String searching a 阅读全文