์ ํ ์ ๋ ฌ (Selection Sort)
ํต์ฌ ์์
โข
๋ฐฐ์ด์ ์ํํ๋ฉฐ ์ต์๊ฐ์ ์ฐพ์ ๋งจ ์๋ถํฐ ์ฑ์๋๊ฐ๋ ๋ฐฉ์
โข
๋ ๊ฐ์ ์๋ธ ๋ฆฌ์คํธ๋ก ๋๋์ด ์ ๋ ฌ ์งํ
โข
์ ์๋ฆฌ ์ ๋ ฌ(in-place sorting) ์๊ณ ๋ฆฌ์ฆ
์๊ฐ ๋ณต์ก๋
์ต์ ์ ๊ฒฝ์ฐ | O(nยฒ) |
ํ๊ท ์ ๊ฒฝ์ฐ | O(nยฒ) |
์ต์
์ ๊ฒฝ์ฐ | O(nยฒ) |
์ฃผ์ ํน์ง
โข
์ฅ์
โฆ
๊ตฌํ์ด ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์
โฆ
์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฑฐ์ ํ์ํ์ง ์์
โฆ
์์ ์ ์ธ ์ ๋ ฌ ๋ฐฉ์
โข
๋จ์
โฆ
์๊ฐ ๋ณต์ก๋๊ฐ O(nยฒ)์ผ๋ก ๋นํจ์จ์
โฆ
๋ฐ์ดํฐ ์์ด ๋ง์์๋ก ์ฑ๋ฅ ์ ํ
์์ ์ฝ๋
์ง์ ๊ตฌํ
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++) {
int minIdx = i;
// ์ต์๊ฐ ์ฐพ๊ธฐ
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
// ์ต์๊ฐ์ ํ์ฌ ์์น์ ๊ตํ
int temp = arr[minIdx];
arr[minIdx] = arr[i];
arr[i] = temp;
}
}
}
Java
๋ณต์ฌ



