[JAVA] (선택정렬 알고리즘) Selection Sort

Dec 18, 2023
[JAVA] (선택정렬 알고리즘) Selection Sort
💡
선택 정렬 (Selection Sort) 알고리즘 - 최솟값 혹은 최댓값을 찾아 첫 번째 위치에 놓고, 나머지 중 다시 값을 찾아 다음 위치로 정렬하는 알고리즘
 

ex) 5, 8, 2, 4, 3를 정렬해보자

1round.
비교
i = 0 (해당 위치 변경), p = i (교환 인덱스)
5 ,8 (0 , 1)
변화 X
5, 2 (0 , 2)
p = 2
2 ,4 (2 , 3)
변화 X
2 ,3 (3, 4)
변화 X
if ( i ≠ p ) 2, 8, 5, 4, 3 (i, p 교환)
 
2round.
비교
i = 1 (해당 위치 변경), p = i (교환 인덱스)
8, 5 (1, 2)
p = 2
5, 4 (2, 3)
p = 3
4, 3 (3, 4)
p = 4
if ( i ≠ p ) 2, 3, 5, 4, 8
 
3round.
비교
i = 2 (해당 위치 변경), p = i (교환 인덱스)
5, 4 (2, 3)
p = 3
4, 8 (3, 4)
p = 4
if ( i ≠ p ) X
 
4round.
비교
i = 3 (해당 위치 변경), p = i (교환 인덱스)
5, 8 (3, 4)
변화 X
if ( i ≠ p ) 2, 3, 4, 5, 8
 
 
public class SelectionSort { public static void main(String[] args) { int[] arr = { 5, 8, 2, 4, 3}; for (int rep = 0; rep < arr.length-1; rep++) { int min = rep; // rep번째 보다 rep+1이 크면 min은 rep + i번째 자리에 있다 for (int i = rep + 1; i < N; i++) { if (arr[min] > arr[i]) min = i; } // 최솟값 순으로 rep에 위치 if ((rep) != min) { int temp = arr[rep]; arr[rep] = arr[min]; arr[min] = temp; } } for (int i = 0; i < N; i++) System.out.println(arr[i]); } }
notion image
 
Share article

MiracleCoding