Что такое асимптотически узкая верхняя граница?

15

Из того, что я узнал, асимптотически тесная связь означает, что она связана сверху и снизу, как в тета-записи. Но что означает асимптотически узкая верхняя граница для обозначения Big-O?

Вивек Кумар
источник
Это меня тоже смутило. Почему авторы не могут сказать «тета»? Зачем придумывать ненужные термины?
beroal

Ответы:

20

Сказать, что граница большого O является «асимптотически жесткой», в основном означает, что автор должен был написать . Например, O ( x 2 ) означает, что для всех достаточно больших  x это не более некоторого постоянного времени  x 2 ; «асимптотически плотный» означает, что на самом деле это некоторое постоянное время  х 2 для достаточно большого  х, а не, скажем, некоторое постоянное время  х 1,999 .Θ(-)О(Икс2)Икс2ИксИкс2ИксИкс1,999

Дэвид Ричерби
источник
13

Вот пример, объясняющий это (и конкретный пример для хорошего ответа Дэвида).

Предположим , у вас есть алгоритм , который дается в качестве входных данных массив целых чисел . Алгоритм просматривает массив и увеличивает счетчик, изначально установленный на ноль, каждый раз, когда видит элемент, являющийся четным целым числом. Мы можем доказать алгоритм работает в скажут O ( п 3 ) время, где п есть число элементов в A . Но мы также можем дать более жесткую оценку и сказать, что она выполняется за время O ( n ) . Эта граница асимптотически тесная: фактически, поскольку чтение входных данных уже занимает Ω ( n )AО(N3)NAО(N)Ω(N) времени, мы могли бы быть более точными и сказать, что алгоритм занимает время.Θ(N)

Юхо
источник
3
+1, но я думаю, что опасность в вашем выборе примера состоит в том, что может быть неверно истолковано утверждение о том, что для асимптотически узкой верхней границы должен быть невозможен более быстрый алгоритм для этой задачи, когда это не так. (Я говорю это потому, что всякий раз, когда я вижу наблюдение «Вам нужно как минимум время для чтения входных данных», оно используется для обоснования такого утверждения «не может существовать более быстрый алгоритм».)Ω(N)
j_random_hacker
1
@j_random_hacker Вы правы, мы должны быть осторожны с этим. Напомним, что асимптотически жесткая граница ничего не говорит о возможности более быстрого алгоритма в целом.
Юхо