๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

์‹ฌ์‹ฌํ’€์ด ๋•…์ฝฉ๐Ÿฅœ : ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort) ๋ณธ๋ฌธ

๐Ÿง Algorithm/์‹ฌ์‹ฌํ’€์ด ๋•…์ฝฉ๐Ÿฅœ

์‹ฌ์‹ฌํ’€์ด ๋•…์ฝฉ๐Ÿฅœ : ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort)

4:Bee 2023. 9. 19. 01:48
728x90

์‚ฝ์ž… ์ •๋ ฌ์€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ๊ฐ’์„ ์ถ”์ถœํ•˜์—ฌ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

arr = [1,6,9,3,4]
len = 5  
[n][arr]
i =  0 /  i =  1 /  i =  2 / i =  3 /  i =  4 / 
j =  0 /  j =  0 /  j =  0 / j =  0 /  j =  0 / 
j =  1 /  j =  1 /  j =  1 / j =  1 /   
j =  2 /  j =  2 /  j =  2 /    
j =  3 /  j =  3 /       
j =  4 /         
def insertion_sort(arr):
    n = len(arr) # ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ €์žฅ
    for i in range(1, n): # ๋ฐฐ์—ด ๊ธธ์ด 5๋ฅผ ๊ธฐ์ค€์œผ๋กœ 1์—์„œ 5๊นŒ์ง€์˜ ๋ฒ”์œ„
        #*๋Š” ํ•ด๋‹น ๋ฐฐ์—ด์˜ ๊ฐ’
        key = arr[i] # 1,2,9,3,4๋ฅผ ๊ธฐ์ค€์œผ๋กœ key์— ๊ฐ’์„ ์ €์žฅ (1์ผ ๋•Œ *6)
        j = i - 1 # j์˜ ๊ฐ’์„ ํ˜•์„ฑ
        while j >= 0 and key < arr[j]: #j๋Š” i๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฐ’๋งŒํผ ์ฐจ๊ฐ (i๊ฐ€ 1์ผ ๋•Œ *6/ j๋Š” 0์œผ๋กœ *1)
            # 0 & 6 < 0 => false
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key #i๊ฐ€ 1์ผ ๋•Œ *6/ j๋Š” 0์œผ๋กœ *1/ arr[j + 1]์ธ arr[1]์€ 6์—์„œ 6์ด๋‹ค. ์ฆ‰, ๋ณ€ํ™” ์—†์Œ
        print(arr)
   

arr = [1,6,9,3,4]
insertion_sort(arr)
print(arr)

์‚ฝ์ž…์ •๋ ฌ์˜ ์‚ฝ์ž… ๊ณผ์ •์— ์ฃผ์˜๋ฅผ ํ•ด์„œ ๋ด์•ผํ•œ๋‹ค. ๊ฐ’์˜ ์‚ฝ์ž…์ด ์–ด๋–ป๊ฒŒ ์–ด๋””์„œ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ์œ ์‹ฌํžˆ ๋ณด์ž.

728x90
Comments