摘要: 上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的例子来解释这种算法。1.假定字符串为"HERE IS A SIMPLE EXAMPLE",搜索词为"EXAMPLE"。2.首先,"字符串"与" 阅读全文
posted @ 2013-12-10 13:55 FREE小宝 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,我才真正理解这种算法。下面,我用自己的语言,试图写一篇比较好懂的KMP算法解释。1.首先,字符串"BBC ABCDAB ABCD 阅读全文
posted @ 2013-12-10 13:46 FREE小宝 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 方法一:原文在:http://support.microsoft.com/?kbid=2228291插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联2在对话框头文件中声明:HACCELm_hAccel;3在对话框的构造函数里初始化m_hAccelm_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));4然后重载对话框的PreTranslateMessage函数,在BOOLCAboutDlg::PreTranslateMessage(MSG*p 阅读全文
posted @ 2013-12-10 10:19 FREE小宝 阅读(296) 评论(0) 推荐(0) 编辑