๐ง๐ป๐ป ์๊ณ ๋ฆฌ์ฆ/์ ๋ ฌ
[์ ๋ ฌ] 3.์ฝ์ ์ ๋ ฌ
10000COW
2022. 11. 29. 18:52
728x90
์ฝ์ ์ ๋ ฌ
- ์ด๋ฏธ ์ ๋ ฌ๋ ๋ถ๋ถ์ ํญ์ ์ ๋ ฌ๋์ด ์๋ค.
- ์ฒ์์๋ ์ ๋ ฌ๋ ๋ถ๋ถ์ ์์๊ฐ 1๊ฐ
- ๋งค๋ฒ, ์ ๋ ฌํ ๋ถ๋ถ์ ์์ 1๊ฐ๋ฅผ ์ด๋ฏธ ์ ๋ ฌ๋ ๋ถ๋ถ์ผ๋ก ์ฎ๊ธด๋ค.
์๊ฐ ๋ณต์ก๋ Θ(n^2)
- ๊ฐ์ฅ ์ข์ ๋: ์ด๋ฏธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ ๋ -> ์ด n-1 ๋ฒ = Θ(n)
- ์ต์ ์ ๊ฒฝ์ฐ: ์ญ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ ๋
i๋ฒ์งธ ์์น์ ์์๋ฅผ ์ ๋ ฌ๋ ๋ถ๋ถ์ ์ถ๊ฐํ ๋, i-1 ๊ฐ์ ์์์ ๋ชจ๋ ๋น๊ตํด์ผํ๋ค.
i = 2,3, ..., n์ผ ๋ ๊ฐ๊ฐ ๋น๊ตํด์ผํ ๊ฐ์๋ 1+ 2+ ... + n-1 = n(n-1)/2 = Θ(n^2)
์ฝ์ ์ ๋ ฌ Python ์ฝ๋
def insertionSort():
nums = list(map(int, input().split(' ')))
for i in range(1, len(nums)):
for j in range(i, 0, -1):
if(nums[j-1] > nums[j]):
nums[j-1], nums[j] = nums[j], nums[j-1]
print(nums)
์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ
728x90