складність, як правило , пов'язані з підрозділом. Використовуючи списки як приклад, уявіть список, елементи якого відсортовані. Ви можете шукати в цьому списку в O ( log n ) час - вам насправді не потрібно дивитись на кожен елемент через сортовану природу списку.Θ(logn)O(logn)
Якщо ви подивитесь на елемент в середині списку і порівняєте його з шуканим елементом, ви можете відразу сказати, лежить він у лівій або правій половині масиву. Тоді ви можете просто взяти цю половину і повторити процедуру, поки не знайдете її або не потрапите до списку з 1 предметом, який ви тривіально порівняєте.
Ви можете бачити, що список фактично наполовину зменшує кожен крок. Це означає, що якщо ви отримаєте список довжиною , максимум кроків, необхідних для досягнення списку з одним елементом, становить 5 . Якщо у вас є список з 128 = 2 7 елементів, вам потрібно лише 7 кроків, для списку 1024 = 2 10 вам потрібно лише 10 кроків і т.д.325128=2771024=21010
Як бачимо, показник у 2 n завжди показує кількість необхідних кроків. Логарифм використовується для "вилучення" саме цього показника, наприклад, log 2 2 10 = 10 . Він також узагальнює перелік довжин, які не є силами двох довгих.n2nlog2210=10