์ ํ ์ ๋ ฌ (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
- ์ ํ ์ ๋ ฌ
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)
๋ถ์์ ํ ์ ๋ ฌ