Чому журнал у великому-O двійкового пошуку не є базовим 2?


35

Я новачок у розумінні алгоритмів інформатики. Я розумію процес бінарного пошуку, але у мене є незначне непорозуміння з його ефективністю.

За розміром елементів знадобиться, в середньому, n кроків, щоб знайти певний елемент. Приймаючи логарифм основи 2 з обох сторін, виходить log 2 ( s ) = n . Так що не було б середню кількість кроків для алгоритму двійкового пошуку буде увійти 2 ( S ) ?s=2nnlog2(s)=nlog2(s)

Ця стаття у Вікіпедії про алгоритм двійкового пошуку говорить про те, що середня продуктивність - . Чому це так? Чому цей журнал числа 2 ( n ) не є ?O(logn)log2(n)


Відповіді:


86

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

Наприклад, де C=1

журнал10н=журнал2нжурнал210=Сжурнал2н
.С=1журнал210

Отже, і log 2 n відрізняються постійною C , а значить, і те і інше: log 10 n  є  O ( log 2 n ) log 2 n  є  O ( log 10 nжурнал10нжурнал2нС

журнал10н є О(журнал2н)
Загалом log a n є O ( log b n ) для натуральних чисел a і b, більших за 1.
журнал2н є О(журнал10н)
журналанО(журналбн)аб

Ще один цікавий факт з логарифмічними функціями полягає в тому, що при постійному , n k не є O ( n ) , але log n k є O ( log nк>1нкО(н)журналнк оскільки log n k = k log n, який відрізняється від log n лише постійною коефіцієнт k .О(журналн)журналнк=кжурналнжурналнк


Не тільки для натуральних чисел: для всіх дійсних , наприклад, e . а,б>1е
nbubis

2
Я додам, що це причина, чому для позначення big-O основу логарифму зазвичай не визначають. Це також означає, що немає плутанини щодо того, яку базу використовує: вона може бути будь-якою із часто використовуваних баз , оскільки це не має значення. О(журналн)
svick

9

журнал(н)ежурнал

Але, як уже було показано, в цьому випадку це не має значення.


7
Мабуть далі варто зауважити, що, хоча "log (n)" може бути неоднозначним, що "O (log (n))" є не тому, що останній має лише одне значення, незалежно від того, про яку базу ви б не думали.
Кріс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.