Sobes.tech
Junior

Кайсы кыйынчылык тезирек: сызыктуу же логарифмдик?

sobes.tech AI

AIден жооп

Логарифмик.

Кыйынчылыктардын салыштырылышы:

Кыйынчылык Тасвиры Алгоритм мисалы
$O(\log n)$ Иш убактысы $n$ өсүү менен жай өсөт. Икели издөө
$O(n)$ Иш убактысы $n$ менен пропорционалдуу өсөт. Тизмени өтүү

$ n > 2 $ үчүн, $ \log n < n $.

Мисал үчүн $ n = 1000 $ учурда салыштыруу:

  • $ \log_2 1000 \ болжол менен 10 $
  • $ 1000 $
# Логарифмик күрделүүлүккө ээ функция (икели издөө)
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1

# Линейкалык күрделүүлүккө ээ функция (линейдик издөө)
def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1