ν‹°μŠ€ν† λ¦¬ λ·°

728x90

πŸ“ 이진 νƒμƒ‰ (Binary Search)

πŸ’‘ μˆœμ°¨ 탐색 (Sequential Search)
리슀트 μ•ˆμ— μžˆλŠ” νŠΉμ •ν•œ 데이터λ₯Ό μ°ΎκΈ° μœ„ν•΄ μ•žμ—μ„œλΆ€ν„° 데이터λ₯Ό ν•˜λ‚˜μ”© μ°¨λ‘€λŒ€λ‘œ ν™•μΈν•˜λŠ” 방법

βœ”οΈ 탐색 λ²”μœ„λ₯Ό 반으둜 μ’ν˜€κ°€λ©° λΉ λ₯΄κ²Œ νƒμƒ‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜

βœ”οΈ μ°ΎμœΌλ €λŠ” 데이터와 "쀑간점" μœ„μΉ˜μ— μžˆλŠ” 데이터λ₯Ό 반볡적으둜 λΉ„κ΅ν•˜λŠ” 방법

쀑간점이 μ‹€μˆ˜μΌ λ•ŒλŠ” μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό 버린닀.

 

βœ”οΈ 데이터가 λ¬΄μž‘μœ„μΌ λ•ŒλŠ” μ‚¬μš©ν•  수 μ—†μ§€λ§Œ, 이미 μ •λ ¬λ˜μ–΄ μžˆλ‹€λ©΄ 맀우 λΉ λ₯΄κ²Œ 데이터λ₯Ό 찾을 수 μžˆλ‹€. 

βœ”οΈ μ‹œκ°„ λ³΅μž‘λ„ : O(logN)

     → ν•œ 번 확인할 λ•Œλ§ˆλ‹€ ν™•μΈν•˜λŠ” μ›μ†Œμ˜ κ°œμˆ˜κ°€ μ ˆλ°˜μ”© 쀄어든닀.

πŸ’‘ μ½”λ”©ν…ŒμŠ€νŠΈ 
λ°μ΄ν„°μ˜ κ°œμˆ˜κ°€ 1,000만 개λ₯Ό λ„˜μ–΄κ°€κ±°λ‚˜ 탐색 λ²”μœ„μ˜ 크기가 1,000μ–΅ 이상이라면 이진 탐색 μ•Œκ³ λ¦¬μ¦˜μ„ μ˜μ‹¬ν•΄λ³΄μž. 

 

πŸ“Œ python code (while)

πŸ“Œ python code (recursive)

 

 

 


Ref.

- 이것이 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with 파이썬

 

 

 

728x90
λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€