Insertion Sort

์ •๋ ฌ ๊ณผ์ •

  • ์ •๋ ฌํ•  ์ž๋ฃŒ๋ฅผ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ S์™€ U๋กœ ๊ฐ€์ •

    1. ๋ถ€๋ถ„์ง‘ํ•ฉ S : ์ •๋ ฌ๋œ ์•ž๋ถ€๋ถ„์˜ ์›์†Œ๋“ค

    2. ๋ถ€๋ถ„์ง‘ํ•ฉ U : ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค

  • ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ง‘ํ•ฉ U์˜ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด์žˆ๋Š” ๋ถ€๋ถ„์ง‘ํ•ฉ S์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋ฉด์„œ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•œ๋‹ค.

  • ์‚ฝ์ž… ์ •๋ ฌ์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๋ถ€๋ถ„์ง‘ํ•ฉ S์˜ ์›์†Œ๋Š” ํ•˜๋‚˜์”ฉ ๋Š˜๋ฆฌ๊ณ  ๋ถ€๋ถ„์ง‘ํ•ฉ U์˜ ์›์†Œ๋Š” ํ•˜๋‚˜์”ฉ ๊ฐ์†Œํ•˜๊ฒŒ ๋œ๋‹ค.

  • ๋ถ€๋ถ„์ง‘ํ•ฉ U๊ฐ€ ๊ณต์ง‘ํ•ฉ์ด ๋˜๋ฉด ์‚ฝ์ž…์ •๋ ฌ์ด ์™„์„ฑ๋œ๋‹ค

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

  • O (n ^ 2)

    • ๊ฐ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ์›์†Œ๋ฅผ ๋งค๋ฒˆ ๋น„๊ตํ•ด์•ผ ํ•˜๋ฏ€๋กœ!

Iterative Selection Sort

arr = [69, 10, 30, 2, 16, 8, 31, 22]
N = len(arr)

for i in range(1,N):  # 1 ~ N-1
    tmp = arr[i]
    print(arr[:i], arr[i:])
    j = i -1
    while j >= 0 and arr[j] > tmp:
        arr[j+1] = arr[j]
        j -= 1
    arr[j+1] = tmp

print(arr)

Last updated

Was this helpful?