[c++] 선택 정렬
이 글에서는 C++을 사용하여 선택 정렬을 구현하는 방법을 알아보겠습니다.
선택 정렬 알고리즘
선택 정렬(Selection Sort)은 가장 작은(또는 큰) 원소를 선택하여 알맞은 위치로 옮기는 과정을 반복하여 정렬하는 알고리즘입니다. 이 알고리즘은 다음의 단계로 동작합니다.
- 리스트에서 최소값을 찾습니다.
- 최소값을 현재 위치와 교환합니다.
- 다음 위치를 선택하여 위의 과정을 반복합니다.
이 알고리즘은 안정적이며 제자리 정렬(in-place sort) 알고리즘이기 때문에 추가적인 메모리가 필요하지 않습니다.
C++ 코드 예제
다음은 C++으로 선택 정렬을 구현한 간단한 예제 코드입니다.
#include <iostream>
void selectionSort(int arr[], int n) {
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;
}
}
std::swap(arr[i], arr[minIndex]);
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
selectionSort(arr, n);
std::cout << "정렬된 배열: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
위 코드는 정수 배열을 선택 정렬하는 selectionSort
함수와 정렬된 배열을 출력하는 main
함수를 포함하고 있습니다.
마치며
이제 C++을 사용하여 선택 정렬을 구현하는 법을 알게 되었습니다. 선택 정렬은 이해하기 쉽고 구현하기도 간단한 정렬 알고리즘이지만 큰 배열에 대해서는 효율적이지 않으니 참고하시기 바랍니다.
참고 자료: GeeksforGeeks - Selection Sort