Алгоритм Кнута-Морриса-Пратта считается более эффективным по сравнению с другими методами поиска подстроки в строке, потому что он позволяет сократить количество сравнений. 2
Идея алгоритма состоит в том, чтобы не прикладывать подстроку к строке со сдвигом всего в один символ, а максимально увеличить это расстояние, сократив таким образом количество сравнений. 2
Алгоритм основывается на том, что после частичного совпадения начальной части подстроки с соответствующими символами строки фактически известна пройденная часть строки и можно вычислить некоторые сведения, с помощью которых затем быстро продвинуться по строке. 1
Кроме того, при возникновении несоответствия само слово содержит достаточно информации, чтобы определить, где может начаться следующее совпадение, минуя лишние проверки. 3