Guidelines

이진 탐색 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κΈ°

1. 초기 λ²”μœ„ μ„€μ •

검색 λ²”μœ„μ˜ μ‹œμž‘μ κ³Ό 끝점을 μ„€μ •ν•©λ‹ˆλ‹€.

초기 λ²”μœ„ μ„€μ •
def binary_search(arr, target): start, end = 0, len(arr) - 1

2. 반볡적인 비ꡐ 및 λ²”μœ„ μ‘°μ •

쀑간 μš”μ†Œλ₯Ό ν™•μΈν•˜κ³ , 검색 λ²”μœ„λ₯Ό 반으둜 μ€„μž…λ‹ˆλ‹€.

반볡적인 비ꡐ 및 λ²”μœ„ μ‘°μ •
while start <= end: mid = (start + end) // 2 # 쀑간점 if arr[mid] == target: # 찾은 경우 return mid elif arr[mid] < target: # μ€‘κ°„μ μ˜ 값보닀 찾고자 ν•˜λŠ” 값이 큰 경우 start = mid + 1 else: # μ€‘κ°„μ μ˜ 값보닀 찾고자 ν•˜λŠ” 값이 μž‘μ€ 경우 end = mid - 1 return -1 # 찾지 λͺ»ν•œ 경우

μ‹œκ°„ λ³΅μž‘λ„

  1. μ΅œμ•…μ˜ 경우 μ‹œκ°„ λ³΅μž‘λ„: O(log n)

    • 이진 νƒμƒ‰μ—μ„œλŠ” 각 λ‹¨κ³„λ§ˆλ‹€ 검색 λ²”μœ„λ₯Ό 반으둜 μ€„μž…λ‹ˆλ‹€. λ”°λΌμ„œ, n개의 μš”μ†Œκ°€ μžˆμ„ λ•Œ, μ΅œλŒ€ log n번의 단계λ₯Ό 거쳐야 ν•©λ‹ˆλ‹€.
  2. μ΅œμ„ μ˜ 경우 μ‹œκ°„ λ³΅μž‘λ„: O(1)

    • 찾고자 ν•˜λŠ” μš”μ†Œκ°€ 쀑간점에 μœ„μΉ˜ν•˜λŠ” 경우, 첫 번째 λΉ„κ΅μ—μ„œ λ°”λ‘œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 평균 μ‹œκ°„ λ³΅μž‘λ„: O(log n)

    • λŒ€λΆ€λΆ„μ˜ 경우, 이진 탐색은 둜그 μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°€μ§‘λ‹ˆλ‹€. μ΄λŠ” 검색 κ³Όμ •μ—μ„œ 검색 λ²”μœ„κ°€ 맀 λ‹¨κ³„λ§ˆλ‹€ 반으둜 쀄기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result