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

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?

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

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

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

 http://en.wikipedia.org/wiki/Sorting\_algorithm#Comparison\_of\_algorithms 

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



Большой "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 только для худшего анализа случая...
> 
> 
> 

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

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

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