[java] 자바의 선택 정렬(Selection Sort) 알고리즘 이해하기
이번에는 자바에서 선택 정렬(Selection Sort) 알고리즘을 이해해보겠습니다. 선택 정렬은 가장 작은(또는 큰) 항목을 선택해서 정렬하는 알고리즘이고, 간단하지만 효율성이 떨어지는 알고리즘 중 하나입니다.
알고리즘 설명
선택 정렬은 배열을 순회하면서 현재 위치에서 그 다음 위치부터 끝까지 최소값(또는 최대값)을 찾아서 현재 위치와 교환하는 방식으로 동작합니다. 이를 배열 길이만큼 반복하면 정렬이 완료됩니다.
선택 정렬의 시간 복잡도는 O(n^2)으로 비효율적이지만, 간단하고 직관적인 구현으로 이해하기 쉽습니다.
자바 코드 예시
다음은 자바로 구현한 선택 정렬 알고리즘의 예시입니다.
public class SelectionSort {
public void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
결론
선택 정렬은 간단하지만 성능이 좋지 않아 실제로는 잘 사용되지 않습니다. 그러나 이해하기 쉬운 알고리즘이기 때문에 기본적인 정렬 알고리즘을 이해하고 구현하는 데 도움이 됩니다.
이상으로 자바의 선택 정렬 알고리즘에 대한 간단한 소개를 마치도록 하겠습니다.
참고문헌:
- https://ko.wikipedia.org/wiki/%EC%84%A0%ED%83%9D_%EC%A0%95%EB%A0%AC
- https://youtu.be/92S4zgXN17o