По сути, Робин-Карп выражает свою асимптотическую запись как O(m+n)
как средство для выражения того факта, что требуется линейное время относительно m+n
, а не просто n
. По сути, переменные m
и n
должны что-то значить, когда вы используете асимптотическую запись. В случае алгоритма Робина-Карпа n
представляет длину текста, а m
представляет суммарную длину как текста, так и шаблона. Обратите внимание, что O(2n)
означает то же самое, что и O(n)
, потому что O(2n)
все еще является линейной функцией от просто n
. Однако в случае с Робин-Карпом m+n
на самом деле не является функцией , а просто n
. Скорее, это функция как m
, так и n
, которые являются двумя независимыми переменными. Таким образом, O(m+n)
не означает то же самое, что и O(n)
так же, как O(2n)
равняется O(n)
.
Надеюсь, это имеет смысл. : -Р