Цитата досить невиразна і неточна. Існують щонайменше три суміжні способи, за допомогою яких це можна інтерпретувати.
Буквально математичний момент за цим полягає в тому, що якщо вас цікавлять лише екземпляри розміром до певної межі, то існує лише безліч можливих випадків. Наприклад, є лише кінцево багато графіків на сотню вершин. Якщо є лише обмежена кількість екземплярів, ви, в принципі, можете вирішити проблему, просто побудувавши оглядову таблицю з усіма відповідями на всі можливі екземпляри. Тепер ви можете знайти відповідь, попередньо перевіривши, чи вхід не надто великий (що займає постійний час: якщо введення довше к, він недійсний), а потім шукайте відповідь у таблиці (що займає постійний час: у таблиці є фіксована кількість записів). Зауважте, що фактичний розмір таблиці, ймовірно, незрівнянно великий. Я сказав, що на сотню вершин є лише обмежена кількість графіків, і це правда. Просто кінцеве число більше, ніж кількість атомів у спостережуваному Всесвіті.
Більш практичне справу, що, коли ми говоримо , що час роботи алгоритму є , це означає тільки те , що вона асимптотично з п 2 кроку, для деякої константи C . Тобто є деяка константа n 0 така, що для всіх n ≥ n 0 алгоритм виконує приблизно c n 2 кроки. Але може бути n 0 = 100 , 000 , 000Θ ( n2) c n2Сн0n ≥ n0c n2н0= 100 , 000 , 000і вас цікавлять лише екземпляри, розміри яких набагато менші. Асимптотична квадратична межа може навіть не застосовуватися до ваших невеликих примірників. Можливо, вам пощастить, і на невеликих входах це може бути швидше (або ви можете не пощастити і повільніше). Наприклад, для малих , n 2 < 1000 n, тому ви краще запустите квадратичний алгоритм з хорошими константами, ніж лінійний алгоритм з поганими константами. Прикладом реального життя є те, що асимптотично найефективніші алгоритми множення матриці (варіанти Копперсміта – Винограда , що працюють в часі O ( n 2.3729 ) ) рідко використовуються на практиці, оскільки О Strassen'sнн2< 1000 нО ( н.)2.3729) алгоритм швидший, якщо ваші матриці дійсно великі.О ( н.)2.8074)
Третій момент полягає в тому, що якщо малий, n 2 і навіть n 3 малі. Наприклад, якщо вам потрібно сортувати кілька тисяч елементів даних і вам потрібно сортувати їх лише один раз, будь-який алгоритм сортування досить хороший: a Θ ( n 2 )нн2н3Θ ( n2)Алгоритм все ще потребує, можливо, декількох десятків мільйонів інструкцій для сортування ваших даних, що зовсім не так багато часу на процесорі, який може виконувати мільярди інструкцій в секунду. Гаразд, також є доступ до пам'яті, але навіть повільний алгоритм займе менше секунди, тому, мабуть, краще скористатися простим, повільним алгоритмом і правильно його, ніж використовувати складний, швидкий алгоритм і виявити, що це блискавично але баггі і насправді не сортує дані належним чином.