一步一步写算法(之字符串查找 中篇) (二)

2014-11-23 23:40:04 · 作者: · 浏览: 41
7 8 9
* A: b a a a a a b c d
* B: a a a a b
* 1 2 3 4 5 6 7 8 9
*/
/* 1 2 3 4 5 6 7 8 9
* A: b a a a a a b c d
* B: a a a a b
* 1 2 3 4 5 6 7 8 9
*/ 我们发现B和A在从第2个元素开始比较的时候,发现最后一个元素是不同的,A的第6个元素是a,而B的第5个元素是b。按照普通字符串查找的算法,那么下面A会继续向右移动一位,但是事实上2-5的字符我们都已经比较过了,而且2-5这4个元素正好和B的前4个元素对应。这个时候B应该用最后一位元素和A的第7位元素比较即可。如果这个计算步骤能省下,查找的速度不就能提高了吗?