随笔分类 -  算法

摘要:之前讲过汉字注音问题,也发过关于拼音匹配问题,但是没法处理多音字问题例如: 汉字:不能说的秘密 拼音:bu|fou nai|neng shuo|shui|yue de|di bi|mi mi 当我们输入:bunengshuodebimi,bunegnshuodemimi,bnsdmm,bnengyuedebimi,buneshdimmi等都可以匹配成功 这里很多字都有多音字,要判断出每个字的确切的读音比较困难。这里我们就对每一种读音都进行匹配 思路: 这里对每个字的拼音首字母进行匹配 每个字的首字母为: b|f n s|y d b|m m 这里假设模式串为:neng... 阅读全文
posted @ 2012-12-25 21:36 bomo 阅读(4963) 评论(0) 推荐(0)
摘要:之前一直想做个通讯录程序,和音乐快速搜索程序,需要使用到汉字注音,还有字符串快速匹配。可一直没有找到高效率的算法,普通的字符串匹配算法速度太慢,如何才能在最短的时间内匹配出需要的字符串,这个问题困惑了几个星期,今天把字符串匹配算法共享出来,具体效果跟QQ通讯录查找联系人的时候差不多测试: 测试字符串: string[] pinyin = {"chen", "neng", "guang"} 测试Key: "chng" "chnengguang" "cheng" "ch 阅读全文
posted @ 2012-12-02 15:33 bomo 阅读(4599) 评论(0) 推荐(0)
摘要:在进行搜索的时候,经常要使用到字符串匹配算法,下面总结几种字符串匹配的算法,以C#代码为例1、BF匹配算法 最简单的匹配算法,时间复杂度为O(m*n),原理:逐个匹配,若发现不匹配,则后移一位继续匹配, 从pos位置开始,在 source 中找出与 target 匹配的子串的位置,若未找到,返回-1 //BF匹配算法,时间复杂度O(m*n) private int BFIndex(string source, string target, int pos) { int i = pos, j = 0; wh... 阅读全文
posted @ 2012-11-30 22:27 bomo 阅读(1060) 评论(0) 推荐(0)