μ€λμ λ κ°μ§ νμ μκ³ λ¦¬μ¦μΈ μμ°¨ νμκ³Ό μ΄μ§ νμμ λν΄ μμλ³΄λ €κ³ ν©λλ€. λ μκ³ λ¦¬μ¦ λͺ¨λ λ°μ΄ν°λ₯Ό νμνλ λ°©λ²μ΄μ§λ§, κ·Έ μλ λ°©μκ³Ό ν¨μ¨μ±μ ν° μ°¨μ΄κ° μμ΅λλ€. μ΄λ€ μν©μμ μ΄λ€ μκ³ λ¦¬μ¦μ μ¬μ©ν΄μΌ νλμ§ ν¨κ» μ΄ν΄λ³΄κ² μ΅λλ€.
μμ°¨ νμμ κ°μ₯ κΈ°λ³Έμ μΈ νμ λ°©λ²μ λλ€. 리μ€νΈλ λ°°μ΄μ 첫 λ²μ§Έ μμλΆν° νλμ© μ°¨λ‘λλ‘ νμνμ¬ μ°Ύκ³ μ νλ κ°μ μ°Ύμ λκΉμ§ κ³μ μ§νν©λλ€.
def sequential_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i # μ°Ύμ κ²½μ° μΈλ±μ€ λ°ν
return -1 # μ°Ύμ§ λͺ»ν κ²½μ°
μ΄μ§ νμμ μ λ ¬λ 리μ€νΈμμλ§ μ¬μ©ν μ μλ λ§€μ° ν¨μ¨μ μΈ νμ λ°©λ²μ λλ€. νμ λ²μλ₯Ό μ λ°μΌλ‘ λλλ©΄μ μ°Ύκ³ μ νλ κ°μ μ°Ύμ΅λλ€.
리μ€νΈκ° μ λ ¬λμ΄ μμ΄μΌ ν©λλ€.
μ€κ° μμλ₯Ό νμΈνκ³ , μ°Ύκ³ μ νλ κ°μ΄ μ€κ° μμλ³΄λ€ μμΌλ©΄ μΌμͺ½μΌλ‘, ν¬λ©΄ μ€λ₯Έμͺ½μΌλ‘ νμ λ²μλ₯Ό μ€μ¬λκ°λλ€.
νμ λ²μλ₯Ό κ³μ μ λ°μ© μ€μ¬κ°λ©΄μ κ°μ μ°Ύμ΅λλ€.
κ°μ μ°ΎμΌλ©΄ νμμ μ’
λ£νκ³ , μ°Ύμ§ λͺ»νλ©΄ νμ λ²μλ₯Ό λͺ¨λ νμΈνμΌλ―λ‘ νμ μ€ν¨λ‘ μ²λ¦¬ν©λλ€.
μ΅μ μ κ²½μ°: O(log n) (νμ λ²μλ₯Ό μ λ°μ© μ€μ¬λκ°κΈ° λλ¬Έ)
λ§€μ° λΉ λ₯Έ νμμ΄ κ°λ₯ν©λλ€.
λ°μ΄ν°κ° ν΄μλ‘ κ·Έ ν¨μ¨μ±μ΄ κ·Ήλνλ©λλ€.
μ λ ¬λ 리μ€νΈμμλ§ μ¬μ©ν μ μμ΅λλ€.
μ λ ¬λμ§ μμ 리μ€νΈμμ μ¬μ©νλ €λ©΄ λ¨Όμ μ λ ¬μ ν΄μΌ νλ―λ‘ μΆκ° μκ°μ΄ νμν μ μμ΅λλ€.
μ½λ μμ:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid # μ°Ύμ κ²½μ° μΈλ±μ€ λ°ν
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1 # μ°Ύμ§ λͺ»ν κ²½μ°
μμ°¨ νμκ³Ό μ΄μ§ νμμ κ°κΈ° λ€λ₯Έ μ₯λ¨μ μ κ°μ§κ³ μμ΅λλ€. μμ λ°μ΄ν°μ μ΄λ μ λ ¬λμ§ μμ λ°μ΄ν°μ μμλ μμ°¨ νμμ΄ μ ν©νμ§λ§, ν° λ°μ΄ν°μ μ΄λ©΄μ μ λ ¬μ΄ λμ΄ μλ€λ©΄ μ΄μ§ νμμ μ¬μ©νλ κ²μ΄ ν¨μ¬ λ ν¨μ¨μ μ λλ€.