LINUX.ORG.RU

Про асимптотическую оценку скорости алгоритмов


0

1

Собственно, почему всегда используется О большое? Приведу пример: при сортировке пузырьком выполняется n*(n-1)/2 шагов. Это можно оценить как O(n^2). Но ведь, насколько я понимаю, можно оценить это и как, например, O(n^5) - в соответствии с математическим определением О большого.

Почему используют О? А не тету или там эквивалентные функции (lim f/g = 1)



Последнее исправление: johnson102 (всего исправлений: 1)

O(n^5) - в соответствии с математическим определением О большого.

Что такое по-вашему О?

anonymous
()

что бы знать максимальную цену своим действиям

anonymous
()
Ответ на: комментарий от johnson102

А, точно - в одну же сторону, но обычно и получается как и Θ. Оценку сверху проще сделать. (А эквивалентные точно не подойдут: вдруг колебания между двумя константами).

anonymous
()

Почему используют О? А не тету или там эквивалентные функции

Прочитай первую встречную-поперечную книгу по оценке сложности алгоритмов - многие вопросы отпадут сами собой

alienclaster ★★★
()

и много тебе скажет выражение: у меня ва кармане меньше миллииона евро? а меньше ста? а меньше десяти?

invy ★★★★★
()
Ответ на: комментарий от johnson102

Ну да, сложность пузырька меньше полиномиальной пятой степени, нет же противоречия. Только смысла в такой оценке не много, супремум куда полезнее.

Kalashnikov ★★★
()

инерция записи.

как уже отметили О большое как правило подразуемат тету ( т.е равенство ассимптот ,а не меньше_или_равно)

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

ум наверно на таких (как греческий и латынь в классических универах) и фильтруют ( ознакомся с 2 мя подходами ( образование это селекция способных VS образование это внедрение спектра навыков нужных народному хозяйству в сей момент)

qulinxao ★★☆
()

в пределе у тебя излишне жёстко достаточно не ноль и не бесконечность (и быть числом . т.е не бесконечность и не ноль )

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

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

вот он, ответ на мой вопрос :) Спасибо

johnson102
() автор топика
Ответ на: комментарий от invy

точнее конечно же: f in O(g) => 0 <= lim sup(f(x)/g(x)) < ~

invy ★★★★★
()
Ответ на: комментарий от johnson102

т.е запись с О однако как правило аргумент у О тета :)

qulinxao ★★☆
()

если использовать \Theta(f(x)), то значит, что алгоритм будет всегда отрабатывать примерно в f(x) время. А при O(f(x)) может отработать и за меньшее, чем f(x).

dikiy ★★☆☆☆
()
Ответ на: комментарий от johnson102

разве это не очевидно? представь две конторы. одна говорит, что построит мост за не больше чем за 1000 рублей. другая - не больше чем за 10000000…000 рублей. какая контора выиграет тендер?

хотя это конечно может и неудачная аналогия, но смысл тот же.

п.с. я только что офигел от капчи.

anonymous
()
Ответ на: комментарий от johnson102

А мне кажется, или ответ кроется в вопросе:

Это можно оценить как O(n^2)... можно оценить это и как, например, O(n^5) - в соответствии с математическим определением О большого.

f(x) = O(g(x)), если g(x) ограничивает сверху f(x) с точностью до постоянного множителя

Т.е. O(const*n^2) -> O(n^2) как раз не тоже самое, что O(n^3*n^2). Первое - корректно, а второе противоречит определению, не так ли?

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.