์ฝ์ ์ ๋ ฌ(Insertion Sort)
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ํ์ธํ๋ฉด์ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ ๋ฐฉ๋ฒ
1. ์๋ฆฌ
- ๋ฐ์ค: ์ด๋ฏธ ์ ๋ ฌ๋ ์์ญ
- ๋ฐ์ค ์ค๋ฅธ์ชฝ: ์์ง ์ ๋ ฌ๋์ง ์์ ์์ญ
- n๋ฒ์งธ ์์๋ฅผ 1๋ถํฐ n-1๊น์ง ๋น๊ตํด ใ ์ ์ ํ ์์น์ ๋ผ์๋๊ณ , ๊ทธ ๋ค์ ์๋ฃ๋ฅผ ํ ์นธ์ฉ ๋ค๋ก ๋ฐ์ด๋
2. ์ฝ๋
array = [3, 5, 2, 8, 1]
for i in range(1, len(array)):
for j in range(i, 0, -1):
if array[j] < array[j-1]:
array[j], array[j-1] = array[j-1], array[j]
else:
break
print(array)
#[1, 2, 3, 5, 8]
3. ์๊ฐ๋ณต์ก๋
O(N²)
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํต ์ ๋ ฌ(Quick Sort) (0) | 2023.06.13 |
---|---|
ํฉ๋ณ ์ ๋ ฌ(Merge Sort) (0) | 2023.06.13 |
๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ(Divide and Conquer) (0) | 2023.06.13 |
๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort) (0) | 2023.06.13 |
์ ํ ์ ๋ ฌ(Selection Sort) (0) | 2023.06.10 |