์ฝ์ ์ ๋ ฌ
๋ฐ์ดํฐ์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ, ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํจ์ผ๋ก์จ ์ ๋ ฌ์ ์์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ฝ์ ์ ๋ ฌ๊ณผ์
์๋ฅผ ๋ค์ด [2, 4, 5, 1, 3] ์ด ์์ ๋, ์์ ์ ์์น๋ฅผ ์ฐพ์ ๊ทธ ์์น์ ๋ค์ด๊ฐ๋ค.
[2, 4, 5, 1, 3] # ์์
[2 | 4, 5, 1, 3] # 2๋ ๋งจ ์์ ์์นํ๊ธฐ ๋๋ฌธ์ ๋ฐ๊พธ์ง ์๋๋ค.
[2 4 | 5, 1, 3] # 4๋ถํฐ ๋น๊ต, 2์ ๋ค์ด๋ฏ๋ก ๋ฐ๋์ง ์๋๋ค.
[2 4 5 | 1, 3] # 5๋น๊ต, 4์ ๋ค์ด๋ฏ๋ก ๋ฐ๋์ง ์๋๋ค.
[2 4 | 5, 1, 3] # 1๋น๊ต, 1์ ์๋ฆฌ๋ ๋งจ ์์ด๋ฏ๋ก ํ ์นธ์ฉ ์ฎ๊ฒจ๊ฐ๋ฉฐ 1์ ์๋ฆฌ์ 1์ ๋ฃ๋๋ค.
[1 2 4 5 | 3] # 3๋น๊ต, 3์ ์๋ฆฌ๋ 4์ 5์ ์์ด๋ฏ๋ก ํ ์นธ์ฉ ์ฎ๊ฒจ๊ฐ๋ฉฐ 3์ ์๋ฆฌ์ 3์ ๋ฃ๋๋ค.
๊ฒฐ๊ณผ [1, 2, 3, 4, 5]
์ฝ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
def ins_sort(a):
n = len(a)
for i in range(1, n):
key = a[i]
j = i - 1
while j >= 0 and a[j] > key:
a[j + 1] = a[j]
j -= 1
a[j + 1] = key
d = [2, 4, 5, 1, 3]
ins_sort(d)
print(d)
์ฐธ๊ณ
์ฝ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋๋ O(N^2)์ด๋ค.
ํ์ง๋ง [1, 2, 3, 4, 5] ๊ฐ์ ์ ๋ ฌ์ด ์๋ฃ๋ ํน๋ณํ ๊ฒฝ์ฐ์๋ O(N)์ผ๋ก ์ ๋ ฌ์ ๋ง์น ์ ์๋ค.
'Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํต ์ ๋ ฌ (0) | 2020.08.25 |
---|---|
[Python] ๋ณํฉ์ ๋ ฌ (0) | 2020.08.23 |
[Python] ์ ํ์ ๋ ฌ (0) | 2020.08.20 |
[Python] ์์ฐจํ์ (0) | 2020.08.19 |
[Python] ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ (0) | 2020.08.16 |