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