Selection_sort.md


์ •๋ ฌ(Sorting)


๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ

  • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

  • ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ๋“ฑ๋“ฑ

์„ ํƒ ์ •๋ ฌ(Selection Sorting)


๊ฐœ๋…

  • ์ œ์ž๋ฆฌ ์ •๋ ฌ(in-place sorting) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜

    • ์ž…๋ ฅ ๋ฐฐ์—ด(์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฐ’๋“ค) ์ด์™ธ์— ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • ํ•ด๋‹น ์ˆœ์„œ์— ์–ด๋–ค ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํŠน์ง•

  • ์ž๋ฃŒ ์ด๋™ ํšŸ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ๊ฒฐ์ •๋œ๋‹ค.

  • ๊ฐ’์ด ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์ƒ๋Œ€์ ์ธ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ O(n^2)

์˜ˆ์‹œ

selectionsort
  • ์ฒซ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ๋‘๋ฒˆ์จฐ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ์ฒซ๋ฒˆ์งธ์— ๋†“๊ณ , ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ์„ธ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€์™€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ๋‘๋ฒˆ์งธ ์œ„์น˜์— ๋†“๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๊ตฌํ˜„

def selection_sort(arr):
    for i in range(len(arr)):
        for j in range(i+1, len(arr)):
            if arr[i] < arr[j]:
                arr[i], arr[j] = arr[j], arr[i]
    return arr

Last updated