ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•
๊ฐ ์ˆซ์ž๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…์‹œํ‚จ๋‹ค.

๋‹ค๋ฅธ ์ •๋ ฌ ๋ฐ•์‹๋“ค์€ ๋ฌด์กฐ๊ฑด ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค๋ฉด ์‚ฝ์ž…์ •๋ ฌ์€ ํ•„์š”ํ•  ๋•Œ๋งŒ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋œ๋‹ค.

 

 

 

 

ํŒŒ์ด์ฌ ์ฝ”๋“œ
# ์‚ฝ์ž… ์ •๋ ฌ (Insertion Sort)

def insertion_sort(arr):
    
    for i in range(len(arr)-1):
        # ํ˜„์žฌ ์ •๋ ฌํ•  ์›์†Œ๋ฅผ ์„ ํƒํ•ด์„œ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก
        j = i 
        while arr[j] > arr[j + 1]:
            temp = arr[j]
            arr[j] = arr[j + 1]
            arr[j + 1] = temp
            j = j-1
            
    
    return arr
                
    
test = [1, 10, 5, 8, 7, 6, 4, 3, 2, 9]
print("์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ : {}".format(insertion_sort(test)))

 

๋ฉˆ์ถœ ํฌ์ธํŠธ๋ฅผ ์•Œ๊ณ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ํšจ์œจ์ ์ด๋‹ค.

๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๊ฑฐ์˜ ์ •๋ ฌ๋œ ์ƒํƒœ์— ํ•œํ•ด์„œ๋Š” ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค๋„ ๋น ๋ฅด๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

 

 

 

 

 

์‹œ๊ฐ„๋ณต์žก๋„

์‹œ๊ฐ„๋ณต์žก๋„ O(N^2)์œผ๋กœ ๋‹ค๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

์•ž์— ์žˆ๋Š” ์ˆซ์ž๋“ค์ด ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์ด ์ค„์–ด๋“ค์–ด์„œ ๋น ๋ฆ„

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€