λ°μν
π μ½μ μ λ ¬(insertion sort) μ΄λ
- μ«μλ₯Ό μ μ ν μμΉμ μ½μ νλ λ°©λ² "νμν κ²½μ°μλ§" μμΉλ₯Ό λ°κΎΌλ€.
- 2κ°μ λ°λ³΅λ¬Έμ μ€μ²©ν΄μ ꡬννκΈ° λλ¬Έμ μκ°λ³΅μ‘λλ O(n^2)
- ν μΈνΈκ° λλ λλ§λ€ μμ μ«μλ€μ "μ λ ¬"λ μνμ΄λ€.
π μ½μ μ λ ¬(insertion sort) μμ
- μμ μμ λ μ€λ¦μ°¨μμΌ κ²½μ°μ μμ μ΄λ€.
- 5κ°μ μμμ€ μ²μκ³Ό κ·Έ λ€μμ λΉκ΅νλ€. κ·Έ λμ μ λ ¬νλ€.
- 1μΈνΈκ° λλλ©΄ μμ μ«μλ€(λ Έλμ)μ μ λ ¬λ μνμ΄λ€.
- λ€μ μΈνΈλ λλ²μ§Έ μ«μλΆν° μμ μ«μμ λΉκ΅νλ€.
π μ½μ μ λ ¬(insertion sort) ꡬν
numbers = [5, 3, 8, 1, 2]
print(f'μ λ ¬ μ : {numbers}')
print()
for i in range(len(numbers)-1):
print(f'{i + 1}μΈνΈ')
for j in range(i, -1, -1):
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
else:
break
print(f'μ λ ¬ μ€: {numbers}')
print()
print(f'μ λ ¬ ν: {numbers}')
π μ½μ μ λ ¬(insertion sort) νΉμ§
- μ₯μ
- λ²λΈμ λ ¬κ³Ό μ νμ λ ¬κ³Ό κ°μ O(n^2) μ΄μ§λ§ μ΄λμ λ μ λ ¬μ΄ λλ ννλ‘ μ§νλκΈ° λλ¬Έμ μ°μ°μ νμκ° μ μ΄ μ¬μ€μ μ‘°κΈ λ λΉ λ₯΄λ€.
- λ¨μ
- μμ μκ°λ³΅μ‘λ O(n^2)
- λ§μ½ μ λ ¬μ΄ κ±°μ λ μνλΌλ©΄ νμΈνΈμ μννλ μ°μ°μ΄ κ±°μ μμΌλ―λ‘ μλκ° λ§€μ° λΉ¨λΌμ§λ€.
π μ½μ μ λ ¬(insertion sort) μ°Έκ΅μλ£
λ°μν
'CS > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ³ν© μ λ ¬(merge sort) (0) | 2020.09.25 |
---|---|
ν΅ μ λ ¬(quick sort) (1) | 2020.09.24 |
μ ν μ λ ¬(selection sort) (0) | 2020.09.22 |
λ²λΈ μ λ ¬(bubble sort) (0) | 2020.09.21 |
λΉ μ€(Big O) - μκ°λ³΅μ‘λ (0) | 2020.09.09 |