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位元素比较即可。如果这个计算步骤能省下,查找的速度不就能提高了吗?
|