ν€μλ
- νμ
- μ ννμ
- μ΄μ§νμ
[μκ³ λ¦¬μ¦] νμ
- μλ£λ₯Ό νλμ© νμνλ μκ³ λ¦¬μ¦
- λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ¬Έμ λ₯Ό νμν΄μΌνλ€.
[νμ] μ ννμ(Linear Search)
- κΈ°λ³Έμ μΈ νμ μκ³ λ¦¬μ¦μΌλ‘ νλ²μ νλμ© μ°¨κ·Όμ°¨κ·Ό λͺ¨λ κ²μνλ κ²
def linear_search(arr, value):
for i in range(len(arr)):
if arr[i] == value:
return i
[νμ] μ΄μ§νμ(Binary Search)
- νμμ ν λ, λ°μ© μ€μ¬λκ°λ©΄μ νμ
- λ§μΉ μ λ€μ΄ κ²μμμ κ°μ΄λ° κ°μ λ§νλ©΄ μ μ μ’νλκ°λ λ°©μ
- λ¨, λ°μ΄ν°κ° μ΄λ―Έ μ λ ¬λ κ²½μ°μλ§ μλνλ€.
- O(logn)μ μκ°λ³΅μ‘λλ₯Ό κ°λλ€.(κ·Έλ£Ήμ 2κ°μ© λλλ©΄μ μ§ννκΈ° λλ¬Έ)
def binary_search(arr, value):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == value:
return mid
elif arr[mid] < value:
low = mid + 1
else:
high = mid - 1
return 'μΈλ±μ€ μμ' # κ°μ μ°Ύμ§λͺ»ν κ²½μ°
'πΏ Data > λΆνΈμΊ ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TIL] 102. [μλ£κ΅¬μ‘°] ν΄μν μ΄λΈ (0) | 2022.04.11 |
---|---|
[TIL] 101. [λΆν μ 볡, μ λ ¬] ν΅ μ λ ¬, λ³ν© μ λ ¬ (0) | 2022.04.07 |
[TIL] 99. [μκ³ λ¦¬μ¦] μ λ ¬ (0) | 2022.04.06 |
[TIL] 98. [μλ£κ΅¬μ‘°] νΈλ¦¬ (0) | 2022.04.05 |
[TIL] 97. μ¬κ·(Recursion) (0) | 2022.04.05 |