λ¬Έμ μ μ.
μλ‘μ΄ μκ³ λ¦¬μ¦μ μ μνκΈ° μ μ, νμ κ·Έ μκ³ λ¦¬μ¦μ΄ ν΄κ²°νλ €λ λ¬Έμ λ₯Ό μ μν΄μΌ ν©λλ€.
μ¬κΈ°μλ 리μ€νΈμμ μ£Όμ΄μ§ λͺ©ν―κ°κ³Ό μΌμΉνλ μμλ₯Ό νλ μ°Ύμ μ μλ ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ λ§λ€λ €κ³ ν©λλ€.
μ΄ νμ λ¬Έμ λ₯Ό νμμ μΌλ‘ μ μνλ©΄ λ€μκ³Ό κ°μ΅λλ€.
μΌμμνμμλ μ΄λ¬ν μμ μ βμ΄λ€ κ²μ μ°Ύμμ€β λΌκ³ ννν©λλ€.
- μ΄ νμ λ¬Έμ λ μ°λ¦¬κ° ν루μλ λͺ λ²μ© μ§λ©΄νλ λ¬Έμ μ
λλ€.
- μ¬μ μμ λ¨μ΄λ₯Ό μ°Ύκ±°λ μ°λ½μ² λͺ©λ‘μμ μ΄λ¦μ μ°Ύκ±°λ μμ¬μ μ¬κ±΄ λͺ©λ‘μμ νΉμ λ μ§λ₯Ό μ°Ύκ±°λ μνμΌλ‘ κ½ μ°¬ μνΌλ§μΌ μ λ°μμ μ’μνλ μ»€νΌ λΈλλλ₯Ό μ°Ύλ κ²½μ° λ±μ΄ μμ΅λλ€.
- μ°λ¦¬μκ²λ λμ λͺ©λ‘κ³Ό λͺ©ν―κ°μ μΌμΉ μ¬λΆλ₯Ό νμΈν μ μλ λ°©λ²μ΄ νμν©λλ€.
- μ¬μ μμ λ¨μ΄λ₯Ό μ°Ύκ±°λ μ°λ½μ² λͺ©λ‘μμ μ΄λ¦μ μ°Ύκ±°λ μμ¬μ μ¬κ±΄ λͺ©λ‘μμ νΉμ λ μ§λ₯Ό μ°Ύκ±°λ μνμΌλ‘ κ½ μ°¬ μνΌλ§μΌ μ λ°μμ μ’μνλ μ»€νΌ λΈλλλ₯Ό μ°Ύλ κ²½μ° λ±μ΄ μμ΅λλ€.
μ ν μ€μΊ
μ΄μ§ μ°Έμμ μ΄μ μ μ΄ν΄νκΈ° μν΄ λΉκ΅ λμμ μ 곡νκ² μ΅λλ€.
λ κ°λ¨ν μκ³ λ¦¬μ¦μ μ ν μ€μΊ(linear scan) λΆν° μ΄ν΄λ΄ μλ€.
- μ ν μ€μΊμ 리μ€νΈμμ ν λ²μ νλμ© κ°μ λͺ©ν―κ°μ μ°Ύκ±°λ λͺ©λ‘μ λμ λλ¬ν λκΉμ§ λΉκ΅ν΄ λͺ©ν―κ°μ μ°Ύμ΅λλ€.
μλ‘ μ΄λ€μ§ λ°°μ΄ Aμμ λͺ©ν―κ°μ μ°ΎμΌλ € νλ€κ³ κ°μ ν΄λ΄ μλ€.
- μ΄ κ²½μ° target = 21μ μ¬μ©ν©λλ€.
- λ°°μ΄μ κ° μμ μμ λ κ°μ΄ 21κ³Ό κ°μμ§ λ°λ³΅ν΄μ νμΈν©λλ€.
- μ΄ κ³Όμ μ΄ μλμ κ·Έλ¦Όμ λ¬μ¬λμ΄ μμ΅λλ€.
- λ°°μ΄μ κ° μμ μμ λ κ°μ΄ 21κ³Ό κ°μμ§ λ°λ³΅ν΄μ νμΈν©λλ€.
LinearScan(Array: A, Integer: target):
Integer: i = 0
WHILE i < length(A):
IF A[i] == target:
return i
i = i + 1
return -1
μ μ½λλ μ ν μ€μΊ μ½λλ₯Ό 보μ¬μ€λλ€.
- μ΄ μ½λλ μΌμΉνλ μμμ μΈλ±μ€λ₯Ό λ°ννκ³ νμμ μ€ν¨νλ©΄ μμκ° μμΌλ―λ‘ -1μ μΈλ±μ€λ‘ λ°νν©λλ€.
- λ¨μΌ WHILE 루νλ λ°°μ΄μ κ° μμλ₯Ό λ°λ³΅νκ³ , λ΄λΆ IF λ¬Έμ μΈλ±μ€μ ν΄λΉνλ μμλ₯Ό λͺ©ν―κ°κ³Ό λΉκ΅ν©λλ€.
- λͺ©ν―κ°μ μ°Ύμ κ²½μ° μ¦μ ν΄λΉ μΈλ±μ€λ₯Ό λ°νν©λλ€.
- λ°°μ΄μ λκΉμ§ νμΈν κ²½μ° -1μ λ°νν©λλ€.
- λͺ©ν―κ°μ μ°Ύμ κ²½μ° μ¦μ ν΄λΉ μΈλ±μ€λ₯Ό λ°νν©λλ€.
- λ¨μΌ WHILE 루νλ λ°°μ΄μ κ° μμλ₯Ό λ°λ³΅νκ³ , λ΄λΆ IF λ¬Έμ μΈλ±μ€μ ν΄λΉνλ μμλ₯Ό λͺ©ν―κ°κ³Ό λΉκ΅ν©λλ€.
μ ν μ€μΊμ λ©μ§κ±°λ λλνμ§ μμ΅λλ€.
λͺ©νκ° λ°μ΄ν°μ μλμ§ μ°ΎκΈ° μν΄ κ°λ₯ν νλͺ©μ λͺ¨λ νμΈνκΈ° λλ¬Έμ β무μν κ²μ¬βμ λλ€.
- νΉν μμκ° μμ£Ό λ§μ 리μ€νΈμμ λΉν¨μ¨μ μ λλ€.
Aμ μλ£ κ΅¬μ‘°μ λν΄ μ무κ²λ λͺ¨λ₯΄λ©΄ νλ‘μΈμ€λ₯Ό μ΅μ νν μ μλ λ°©λ²μ΄ μμ΅λλ€.
- λͺ©ν―κ°μ΄ λͺ¨λ μμμ μμ μ μμΌλ―λ‘ λͺ¨λ μμλ₯Ό νμΈν΄μΌ ν μλ μμ΅λλ€.
μ ν μ€μΊμ νκ³λ₯Ό 보μ¬μ£ΌκΈ° μν΄, κ΅μ€ λ°κΉ₯μ μ€ μ μλ κΈ°μ΄ νλ‘κ·Έλλ° κ³Όλͺ©μ λ£λ νμλ€ κ°μ 물리μ μΈ μνμ€μμ μ΄λ¬ν νμμ μννλ€κ³ μμν΄λ³΄μ.
- νΉμ νμμ μμ λ₯Ό λ°ννλ €λ κ΅μ¬λ κ° νμμκ² βμ΄λ¦μ΄ μ λ λ―Έμ
λκΉ?β λΌκ³ λ¬»κ³ λ€μ νμμΌλ‘ μ΄λν μ μμ΅λλ€.
- κ΅μ¬κ° μ¬λ°λ₯Έ νμμ μ°Ύκ±°λ μ€ λκΉμ§ μ΄λνλ©΄ νμμ΄ μ€μ§λ©λλ€.
- νμλ€μ κ΅μ¬κ° λΉν¨μ¨μ μ΄λΌκ³ μκ°νλ©΄μ κΆμλ λ κ² μ λλ€.
- κ΅μ¬κ° μ¬λ°λ₯Έ νμμ μ°Ύκ±°λ μ€ λκΉμ§ μ΄λνλ©΄ νμμ΄ μ€μ§λ©λλ€.
λλ‘ μ ν νμμμ κ°κ°μ λΉκ΅λ₯Ό λ 빨리 ν μ μλ λ°©λ²μ΄ μλ κ²½μ°κ° κ°λ μμ΅λλ€.
- μλ₯Ό λ€μ΄, 볡μ‘ν λ°μ΄ν°κ° λ¬Έμμ΄μΌ λλ μμ μ¬λ¦° ν¬μ€ν
μμ μ€λͺ
ν κ²μ²λΌ μ΅μ΄λ‘ μΌμΉνμ§ μλ κΈμμμ λΉκ΅λ₯Ό λ©μΆ€μΌλ‘μ¨ λΉκ΅μ 걸리λ μκ°μ μ΅μ νν μ μμ΅λλ€.
- κ·Έλ¬λ μ΄λ° μ΅μ νμλ νκ³κ° μμ΅λλ€.
- μ¬μ ν λͺ¨λ μμλ₯Ό νλμ© νμΈν΄μΌ νκΈ° λλ¬Έμ λλ€.
- κ·Έλ¬λ μ΄λ° μ΅μ νμλ νκ³κ° μμ΅λλ€.