Действительно ли нотация "большого О" - инструмент, чтобы приложить все усилия, худший, & средний анализ случая алгоритма?

Is big-O notation a tool to do best, worst, & average case analysis of an algorithm? Or is big-O only for worst case analysis, since it is an upper bounding function?

0
nl ja de

2 ответы

Это - Большой O, потому что порядки величины выражаются как O (n), O (logN), и т.д.

Лучшие, худшие, и средние случаи алгоритма могут все быть выражены Большим примечанием O.

Поскольку пример этого относился к сортировке алгоритмов, посмотрите

http://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms

Обратите внимание, что алгоритм может быть классифицирован согласно многократным, независимым критериям, таким как использование памяти или использование центрального процессора. Часто, есть компромисс между двумя или больше критериями (например, алгоритм, который использует мало центрального процессора, может использовать довольно мало памяти).

1
добавлено
@hexist: Нет, большая Омега используется, чтобы обозначить асимптотическую нижнюю границу функция , не алгоритм. Например, quicksort Тету (nlogn) средний случай (и таким образом O (nlogn) ), в то время как это Тету (n^2) худший случай (и таким образом также Омега (n^2) ). (Другими словами, большой O, большая Омега и Тета могут все быть применены к любому анализу),
добавлено автор amit, источник
@hexist этот беспорядок распространен, но все еще неправильно. большая Тета, Омега и O используются, чтобы обозначить классы , функции и различный анализ используются, чтобы отличить между worst/best/average/amortized/... случаи. Любой из O, Теты, Омега может привыкнуть к каждому из них. Помните, что определение большого O чисто говорящее о функциях - и как сказать, является ли функция большим O или нет. Никакая причина не применить это определение любому анализу мы используем. Что касается вашего примера, вы могли сказать, что алгоритм - Тета (1) лучший случай и Тета (n^2) худший случай - если можно доказать его, конечно.
добавлено автор amit, источник
Большая Омега, как правило, используется, чтобы обозначить нижние границы, т.е. лучшее время выполнения случая, не Большой O.. я забываю, каково среднее число, я думаю, что это может просто быть ~O (fn) iirc..
добавлено автор hexist, источник
@amit хм, мое понимание - то, что функция и алгоритм могут использоваться попеременно в этом контексте, и что примечание Теты используется, чтобы обозначить, что функция ограничена выше и ниже заданной функцией (т.е. лучшие и худшие случаи ограничены некоторой постоянной сетью магазинов заданной функции). Канонически разговор, если у вашей функции/алгоритма есть весьма различные заказы операции, такие как он обычно, бежит в постоянное время, но иногда идет в n^2, вы сказали бы это it' s Омега (1), ~O (1), но иногда O (n^2). В этом случае это doesn' у t есть Тета-функция начиная с Омеги (1)! = O (n^2).
добавлено автор hexist, источник

Большой "O" - мера асимптотическая сложность , который должен сказать, примерно как алгоритм измеряет, поскольку N становится действительно большим.

If best & worse converge to the same asymptotic complexity, you can use a single value - or you can figure them out seperately (for example, some sorting algorithms have completely different characteristics on sorted or almost-sorted data than on un-sorted data).

Само примечание не передает это, хотя, то, как вы используете его, делает.


... Или большое-O только для худшего анализа случая...

Если вы даете всего одну асимптотическую сложность для алгоритма, она не говорит читателю или (или как), лучший и худший случай отличается от среднего числа.

Если вы даете лучший случай и сложность худшего случая, он говорит читателю, как они отличаются.

По умолчанию, если единственная стоимость перечисляется, это - вероятно, средняя сложность, которая может (или не может) сходиться с худшим случаем.

1
добавлено
Едва ли, но I' ll обращаются к нему более непосредственно. Если вы хотите 3 бита информации, необходимо дать 3 бита информации - большое примечание O подходит для каждой части.
добавлено автор Useless, источник
но вопрос остается оставшимся без ответа...
добавлено автор zukes, источник