์ ํ ์ ๋ ฌ (Selection Sort)
์ ํ ์ ๋ ฌ์, ๋ฐฐ์ด์ ์ ์ผ ์์์๋ถํฐ ํด๋น ์๋ฆฌ์ ๋ค์ด๊ฐ ์ซ์๋ฅผ ์ ํํ๋ ์ ๋ ฌ์ด๋ค. ๋ค์ด๊ฐ ์ซ์๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์๋ฅผ ๋น๊ตํด ๊ฐ์ฅ ์์ ๊ฒ์ ์ ํํ๋ค. ๋ค์ loop ๋ถํฐ๋ ์ด๋ฏธ ์๋ฆฌ๊ฐ ๊ฒฐ์ ๋ ์ซ์๋ ๋น๊ตํ์ง ์๊ณ , ๋๋จธ์ง ์๋ค ์ค์ ๋ค์ด๊ฐ ๊ฒ์ ์ฐพ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ค.
์ฆ, 1๋ฒ์งธ loop์์๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์๋ฆฌ์ ๋ค์ด๊ฐ ์์๋ฅผ n๊ฐ๋ฅผ ๋ชจ๋ ๋น๊ตํด ์ ํํ๊ณ ,
2๋ฒ์งธ loop์์๋ ์ด๋ฏธ ๊ฒฐ์ ๋ ์ฒซ ๋ฒ์งธ ์๋ฆฌ์ ์ซ์๋ฅผ ์ ์ธํ ๋๋จธ์ง n-1๊ฐ๋ฅผ ๋น๊ตํด ๋ ๋ฒ์งธ ์๋ฆฌ์ ๋ค์ด๊ฐ ์ซ์๋ฅผ ๊ฒฐ์ ํ๋ค.
3๋ฒ์ฌ loop์์๋ ์ด๋ฏธ ๊ฒฐ์ ๋ 1~2๋ฒ์งธ ์๋ฆฌ์ ์ซ์๋ฅผ ์ ์ธํ ๋๋จธ์ง n-2๊ฐ๋ฅผ ๋น๊ตํด ์ธ ๋ฒ์งธ ์๋ฆฌ์ ๋ค์ด๊ฐ ์ซ์๋ฅผ ๊ฒฐ์ ํ๊ณ ,
๋ชจ๋ ์๋ฆฌ์ ๋ค์ด๊ฐ ์ซ์๊ฐ ์ ํด์ง ๋๊น์ง ๋ฐ๋ณต๋๋ค.
์ ๊ทธ๋ฆผ์ ์ ํ ์ ๋ ฌ์ ๋ํ๋ด๋ ๊ทธ๋ฆผ์ด๋ค.
์ด ๊ทธ๋ฆผ์์๋ ํ ๋จ๊ณ = ํ loop๋ผ๊ณ ๋ณด๋ฉด ์ข๋ค.
ํ ๋จ๊ณ๋ง๋ค ์์์๋ถํฐ ์๋ฆฌ์ ์ซ์๊ฐ ๊ฒฐ์ ๋๋ฉฐ, ๊ฒฐ์ ๋ ์ซ์๋ ๋๋จธ์ง ๋ฐฐ์ด์์ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์ ํํ๋ฉด ๋๋ค๋ ๊ฒ์ด๋ค.
์ ํ ์ ๋ ฌ ํ์ด์ฌ ์ฝ๋
์ ํ ์ ๋ ฌ ์๋ฐ ์ฝ๋
์ ํ ์ ๋ ฌ ์ฅ๋จ์
- ์ ํ์ ๋ ฌ์ ์ฅ์
๊ฐ๋จํ ๊ตฌํ, ๊ฐ๋ฐ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
- ์ ํ์ ๋ ฌ์ ๋จ์
๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์ข์ง ์์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ก๋ค. (O(n^2))
์ ๋ ฌ๋ ์ํ์์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ฉด ์ ๋ ฌ ํจ์จ์ด ์ข์ง ์๋ค. (์ ๋ ฌ์ด ๋์ด์๋๋ผ๋, ์ด ์ํ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ๊ฐ์ฅ ์์ ์์๋ฅผ ์ฐพ์ผ๋ ค ๋ชจ์ ์์๋ฅผ ๋น๊ตํ ๊ฒ์ด๋ฏ๋ก.)
'๐งช ์ปดํจํฐ๊ณผํ : CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] Array์ LinkedList์ ์ฐจ์ด (์ธํฐ๋ทฐ ๋๋น) (0) | 2022.10.23 |
---|---|
[๊ฐ๋ฐ๊ณตํต] Call by value์ Call by reference (Java, Python, C/C++) (0) | 2022.10.11 |
[Algorithm] ํ ์ ๋ ฌ (Heap Sort) (0) | 2022.09.03 |
[Alogrithm] ์ฝ์ ์ ๋ ฌ (Injection Sort) (0) | 2022.09.03 |
[Algorithm] ๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort) (0) | 2022.09.03 |