์ ํ ์ ๋ ฌ (Selection Sort) ์๊ณ ๋ฆฌ์ฆ :
๊ฐ์ฅ ์์ ์์๋ถํฐ ์ ํํด ์๋ง์ ์์น๋ก ์ฎ๊ฒจ์ ์์๋๋ก ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ
1. ์์ง ์ ๋ ฌ๋์ง ์์ ๋ถ๋ถ์์ ๊ฐ์ฅ ์์ ์์ selection[i]๋ฅผ ์ ํ
2. selection[i]์ ์์ง ์ ๋ ฌ๋์ง ์์ ๋ถ๋ถ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊ตํ
3. n-1ํ ๋ฐ๋ณต

๋ฉ์๋ swap() : a[idx1] ๊ณผ a[idx2] ๋ฅผ ๊ตํ
๋งค๊ฐ๋ณ์ : int[] a, int idx1, int idx2
๋ฉ์๋ selectionSort() : ๊ธธ์ด๊ฐ n์ธ ๋ฐฐ์ด a๋ฅผ ์ ํ ์ ๋ ฌ
๋งค๊ฐ๋ณ์ : int[] a, int n
- ์ ํ ์ ๋ ฌ
java
๋ซ๊ธฐvoid swap(int[] a, int idx1, int idx2) {
โint t = a[idx1];
โa[idx1] = a[idx2];
โa[idx2] = t;
}
void selectionSort(int[] a, int n) {
โfor(int i = 0; i < n-1; i++) {
โโint min = i;
โโfor(int j = i+1; j < n; j++) {
โโโif(a[j] < a[min]) {
โโโโmin = j;
โโโ}
โโ}
โโswap(a, i, min);
โ}
}
์ ํ ์ ๋ ฌ Selection Sort :
์ต์ = ํ๊ท = ์ต์ = O(N^2)
๋ถ์์ ํ ์ ๋ ฌ