day65
11.串
11.a ADT
真子串,真前缀,真后缀
11.b 串匹配
11.b1 串匹配
因为如果采用随机算法,匹配成功的概率非常低,所以在测评算法复杂度时,将匹配失败和匹配成功分开考虑,分别计算算法复杂度。
11.b2 蛮力匹配
蛮力算法的效率之所以很低,是因为他不足以处理这种大量的局部匹配(前面都匹配成功,到最后匹配失败),字母表越小,最坏情况出现的概率越高,随着字母表的增大,最坏情况出现的概率降低(一般在匹配初期就会发现匹配失败),可以达到期望的的O(n)复杂度。
11.c KMP算法
11.c1 KMP算法:从记忆力到预知力
存在大量局部匹配的前缀