๐Ÿโ˜˜๏ธ๐Ÿ๐Ÿฅฌ๐Ÿฅฆ๐ŸŒณ๐ŸŒฒ
์นดํ…Œ๊ณ ๋ฆฌ
์ž‘์„ฑ์ผ
2023. 6. 10. 19:44
์ž‘์„ฑ์ž
ห—ห‹ เญจเญง หŠห—

์‚ฝ์ž… ์ •๋ ฌ(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²)