Как упоминалось в ответе на связанный вопрос, общий способ для алгоритма иметь временную сложность O (log n) заключается в том, чтобы этот алгоритм работал, многократно сокращая размер входных данных. некоторым постоянным множителем на каждой итерации.
Что означает log n?
O(log N) в основном означает, что время растет линейно, а n растет экспоненциально. Таким образом, если для вычисления 10 элементов требуется 1 секунда, для вычисления 100 элементов потребуется 2 секунды, для вычисления 1000 элементов потребуется 3 секунды и так далее. Это O (log n), когда мы используем алгоритмы типа «разделяй и властвуй», например, бинарный поиск.
Что такое O и log n?
Для ввода размера n алгоритм O(n) будет выполнять шаги, пропорциональные n, в то время как другой алгоритм O(log(n)) будет выполнять шаги примерно log(n). Очевидно, что log(n) меньше n, следовательно, алгоритм сложности O(log(n)) лучше.
Как вычислить log n?
Идея состоит в том, что алгоритм будет O(log n), если вместо прокрутки структуры 1 на 1 вы снова и снова делите структуру пополам и выполняете постоянное количество операций для каждого разделения. Алгоритмы поиска, в которых пространство ответов продолжает разбиваться, это O(log n).
Что такое log n Square?
Журнал ^2 (
) означает, что она пропорциональна log log для задачи размера
. Журнал(
)^ 2 означает, что этопропорциональна квадрату лога.