Яке значення


Відповіді:


33

Ти правий. Зауважте, що термін трохи зловживає класичною нотацією big-O , яка визначена для функцій в одній змінній. Однак існує природне розширення для кількох змінних.O(n+m)

Простіше кажучи, оскільки ви можете зробити це і - еквівалентні асимптотичні верхні межі.O(n+m)O(max{m,n})

12(m+n)max{m,n}m+n2max{m,n},
O(n+m)O(max{m,n})

O ( 2 m + m ) = O ( 2 m ) O ( m ) = O ( min { 2 m , m } ) .O(n+m)O(min{n,m})n=2m

O(2m+m)=O(2m)O(m)=O(min{2m,m}).

3
Я думаю, що примітно, що вони пишуть у рефераті: "Ми показуємо, що неможливо визначити нотацію big-O для функцій на більш ніж одній змінній таким чином, що передбачає властивості, які зазвичай використовуються в аналізі алгоритму. Ми також демонструємо, що загальні визначення не мають на увазі ці властивості, навіть якщо функції в нотації big-O обмежуються строго не зменшуваним ".
Рафаель

4
В подальшому до мого вище коментарю, недавня стаття Спільного визначення О-нотації для аналізу алгоритму К. Rutanen (2015) робить показати , як визначити значимі O-нотацію для загальних наборів, в тому числі . N2
Рафаель

25

Вірите чи ні, на моєму досвіді здається, що багато алгоритмів люди насправді не замислювалися про те, що формально означає велика нотація O, і коли вас запитують про це, ви можете отримати кілька різних відповідей. Деякі питання обговорюються в статті Про асимптотичну нотацію з кількома змінними Родні Р. Хоуеллом.

Цікаво також, що здається, що більшість курсів вступних алгоритмів витрачають багато часу, будучи дуже формальними щодо великої нотації O однією змінною, а потім наступні тижні із задоволенням використовують позначення для графічних алгоритмів з кількома змінними, не обговорюючи, що позначення насправді означає.


Посилання у моїй відповіді стосується статті Хоуелла, яка справді є приємною обробкою цього питання.
А.Шульц

1
@ A.Schulz: Дійсно, я одночасно набирав свою відповідь.
Крістофер Арнсфельт Хансен

1
Я прихильник бути обережним з умовами Ландау, тому я згоден, але це містить занадто багато зусиль для хорошої відповіді.
Рафаель

4
@Raphael: Відповідь не має на увазі шахрайства, але, можливо, вона могла бути сформульована точніше. Справа в тому, що в основному питання, яке значення великого O з більш ніж одним параметром. Відповідь полягає в тому, що це повинно означати те, про що існує консенсус у спільноті алгоритмів, що викладається на курсах з алгоритмів і т. Д. Моя думка полягає в тому, що, мабуть, не існує такої консенсусу щодо того, що саме означає нотація.
Крістофер Арнсфельт Хансен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.