πŸ•Έ Algorithm/πŸ•Έ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

[Java/Algorithm]μ„ ν˜•κ²€μƒ‰κ³Ό λ³΄μ΄ˆλ²•

뉴이 NUEY 2024. 10. 17. 18:29
λ°˜μ‘ν˜•

 

μ„ ν˜•κ²€μƒ‰(μˆœμ°¨κ²€μƒ‰)
Linear search
         

μ΄λ ‡κ²Œ μš”μ†Œκ°€ 직선 λͺ¨μ–‘μœΌλ‘œ λŠ˜μ–΄μ„  λ°°μ—΄μ—μ„œ μ›ν•˜λŠ” ν‚€ 값을 κ°–λŠ” μš”μ†Œλ₯Ό λ§Œλ‚  λ•ŒκΉŒμ§€ μ°¨λ‘€λ‘œ κ²€μƒ‰ν•©λ‹ˆλ‹€.

0 1 2 3 4

첫번째 인덱슀 0→1 →2 →3 →4 μˆœμ„œλŒ€λ‘œ κ²€μƒ‰ν•©λ‹ˆλ‹€.

ν•œλ§ˆλ””λ‘œ μ•„λž˜ λ‚΄μš©μ²˜λŸΌ 반볡문(for, while)을 μ΄μš©ν•΄ ν•˜λ‚˜μ”© μ°¨λ‘€λ‘œ κ²€μƒ‰ν•˜λŠ” κ±Έ λ§ν•©λ‹ˆλ‹€.

μ’…λ£Œμ‘°κ±΄

책에 λ‚˜μ˜¨ λ‚΄μš©μ—μ„œ μš”μ†Ÿμˆ˜λ₯Ό μž…λ ₯ν•˜λŠ” 뢀뢄을 λ°”κΏ”μ„œ μ½”λ“œλ₯Ό μ§œλ³΄μ•˜μŠ΅λ‹ˆλ‹€.

  1. 검색 μ‹€νŒ¨ : μ°ΎλŠ” 값이 μ—†μ–΄ λ°°μ—΄μ˜ λκΉŒμ§€ λͺ¨λ‘ κ²€μƒ‰ν•œ 경우
  2. 검색 성곡 : μ°ΎλŠ” 값을 λ°œκ²¬ν•œ 경우

for문으둜 λ°”κΎΈλ©΄ μ’€ 더 κ°„κ²°ν•΄μ§‘λ‹ˆλ‹€.


λ¬΄ν•œ 루프
μœ„μ˜ while(true) ν˜Ήμ€ for ( ; ; ) 와 같이 λ¬΄ν•œ 루프λ₯Ό μ‚¬μš©ν•˜λ”λΌλ„
return ν˜Ήμ€ break; 을 톡해 λΉ μ Έλ‚˜μ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

 


λ³΄μ΄ˆλ²•
Sentinel method

  • μ„ ν˜•κ²€μƒ‰μ˜ μ’…λ£Œ 쑰건 두가지 쀑 검색할 값이 μ—†λŠ” 경우λ₯Ό μ—†μ• 
  • μ’…λ£Œ 쑰건을 ν•˜λ‚˜λ‘œ λ§Œλ“œλŠ” λ°©λ²•μž…λ‹ˆλ‹€.
  • 검색을 μ‹œμž‘ν•˜κΈ° μ „, 찾고자 ν•˜λŠ” 값을 λ°°μ—΄μ˜ 끝에 μ €μž₯ν•©λ‹ˆλ‹€.
    → 이 값을 λ°”λ‘œ 보초Sentinel 라고 ν•©λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•