Sobes.tech
Junior — Middle
123

Алгоритмнің O(log n) күрделілігі деген не және ол қай кезде қолданылады?

Сұралған компаниялар
Datanomika

AI-дан жауап

sobes.tech AI

Сложность алгоритма O(log n) означает, что время выполнения растёт пропорционально логарифму от размера входных данных. Это значит, что при увеличении объёма данных в несколько раз, количество операций увеличивается не линейно, а гораздо медленнее.

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

  • Бинарный поиск в отсортированном массиве — на каждом шаге отбрасывается половина элементов.
  • Некоторые алгоритмы работы с деревьями (например, поиск в сбалансированном бинарном дереве).

Пример бинарного поиска на Java:

int binarySearch(int[] arr, int target) {
    int left = 0, right = arr.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1; // не найдено
}

Здесь количество шагов поиска растёт примерно как log₂(n), где n — размер массива.