[c++] 선택 정렬

이 글에서는 C++을 사용하여 선택 정렬을 구현하는 방법을 알아보겠습니다.

선택 정렬 알고리즘

선택 정렬(Selection Sort)은 가장 작은(또는 큰) 원소를 선택하여 알맞은 위치로 옮기는 과정을 반복하여 정렬하는 알고리즘입니다. 이 알고리즘은 다음의 단계로 동작합니다.

  1. 리스트에서 최소값을 찾습니다.
  2. 최소값을 현재 위치와 교환합니다.
  3. 다음 위치를 선택하여 위의 과정을 반복합니다.

이 알고리즘은 안정적이며 제자리 정렬(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