선택 정렬(Selection Sort)는 제자리 정렬의 알고리즘이며 3가지 순서가 있습니다.
1. 주어진 배열 값들 중에서 최소값을 찾습니다.
2. 그 최소값을 실행 순서의 값과 교체를 합니다.
3. 그렇게 첫 번째, 두 번째...마지막 -1회 까지 1, 2번 과정을 진행 합니다.
아래는 위의 순서에 맞게 실행한 예제입니다.
- 배열에 저장되는 값은 [3, 6, 0, 9, 1] 입니다.
Sequence | Table | Minimum Value |
1 | [3, 6, 0, 9, 1] | 0 |
2 | [0, 6, 3, 9, 1] | 1 |
3 | [0, 1, 3, 9, 6] | 6 |
4 | [0, 1, 3, 6, 9] | - |
아래는 선택 정렬을 구현한 자바 예제입니다.
package algorithm;
public class SelectionSort {
public static void main(String[] args) {
int[] a = { 3, 6, 0, 9, 1 };
int[] sorted_a = selectionSort(a);
System.out.print(Arrays.toString(a)
}
public static int[] selectionSort(int[] a) {
int i, j;
int temp;
for (i = 0; i <= a.length - 1; i++) {
for (j = 0; j <= a.length - 1; j++) {
if (a[i] < a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
return a;
}
}
'Programming > Algorithm' 카테고리의 다른 글
[자바/알고리즘]알고리즘 버블정렬 (0) | 2020.08.26 |
---|---|
[자바/알고리즘]정보처리기사 Section012 - 소인수 분해하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section011 - 약수 구하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section008 - 소수의 합 구하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section007 - 소수 판별 (0) | 2016.02.11 |