• 리슀트 μ•ˆμ— μžˆλŠ” νŠΉμ •ν•œ 데이터λ₯Ό μ°ΎκΈ° μœ„ν•΄ μ•žμ—μ„œλΆ€ν„° 데이터λ₯Ό ν•˜λ‚˜μ”© ν™•μΈν•˜λŠ” 방법
def sequential_search(n, target, array):
  for i in range(n):
    if array[i] == target:
      return i + 1

print(sequential_search(5, 'λ‚˜', ['κ°€', 'λ‚˜', 'λ‹€', '라', '마']))

πŸ™Œ 이진 탐색 : 반으둜 μͺΌκ°œλ©΄μ„œ νƒμƒ‰ν•˜κΈ°

  • λ°°μ—΄ λ‚΄λΆ€μ˜ 데이터가 μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Όλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜
  • μ‹œμž‘μ , 끝점, μ€‘κ°„μ μ˜ μœ„μΉ˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ°ΎμœΌλ €λŠ” 데이터와 쀑간점 μœ„μΉ˜μ˜ 데이터λ₯Ό 반볡적으둜 비ꡐ해 μ›ν•˜λŠ” 데이터λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜
  • 탐색 λ²”μœ„κ°€ 2,000λ§Œμ„ λ„˜μ–΄κ°€λ©΄ 이진 νƒμƒ‰μœΌλ‘œ μ ‘κ·Όν•˜κΈ°
  • 이진 νƒμƒ‰μ˜ μ‹œκ°„ λ³΅μž‘λ„ : O(*logN*)
def binary_search(array, target, start, end):
  if start > end:
    return None
  mid = (start + end) // 2
  if array[mid] == target:
    return mid
  elif array[mid] > target:
    return binary_search(array, target, start, mid-1)
  elif array[mid] < target:
    return binary_search(array, target, mid+1, end)
  • 이진 탐색 λ¬Έμ œλŠ” 탐색 λ²”μœ„κ°€ 넓은 νŽΈμ΄κΈ°μ—, λΉ λ₯΄κ²Œ μž…λ ₯λ°›μ•„μ•Ό μ‹œκ°„μ΄ˆκ³Όλ₯Ό ν”Όν•  μˆ˜μžˆλ‹€.
import sys

input_data = sys.stdin.readline().rstrip()

print(input_data)
profile
μ΄μ‚¬μ€‘μž…λ‹ˆλ‹€!🌟https://velog.io/@devkyoung2

0개의 λŒ“κΈ€