Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 std::sort() 함수로 배열 정렬하는 방법과 예제 코드

정렬(Sorting)은 프로그래밍에서 가장 기본적이면서도 중요한 작업 중 하나입니다. 데이터를 오름차순 또는 내림차순으로 정리하면 탐색 속도가 빨라지고 데이터 분석이 훨씬 수월해집니다. C++에서는 std::sort() 함수를 사용하여 배열을 간편하게 정렬할 수 있습니다.

std::sort() 함수의 기본 문법

sort(시작 주소, 끝 주소)

각 매개변수의 의미는 다음과 같습니다.

  • 시작 주소: 정렬할 첫 번째 요소의 주소
  • 끝 주소: 배열의 마지막 요소가 아닌, 마지막 요소의 다음 위치(바로 인접한 메모리 주소)

즉, std::sort()는 시작 주소부터 끝 주소 바로 앞까지의 범위만 정렬 대상으로 삼습니다. 이는 C++ STL 컨테이너가 일반적으로 반개 구간(half-open interval)을 사용하기 때문입니다.

예제 코드

아래 예제에서는 크기가 5인 정수형 배열을 선언하고, std::sort()를 이용해 오름차순으로 정렬한 뒤 정렬 전후의 배열 상태를 출력합니다.

#include <iostream>
#include <algorithm>
using namespace std;

void display(int a[]) {
    for(int i = 0; i < 5; ++i)
        cout << a[i] << " ";
}

int main() {
    int a[5] = {4, 2, 7, 9, 6};

    cout << "\n정렬 전 배열 : ";
    display(a);

    sort(a, a+5);

    cout << "\n\n정렬 후 배열 : ";
    display(a);

    return 0;
}

실행 결과

정렬 전 배열 : 4 2 7 9 6

정렬 후 배열 : 2 4 6 7 9

코드 설명

std::sort() 함수를 사용하려면 <algorithm> 헤더 파일을 포함해야 합니다. 위 코드에서 sort(a, a+5) 호출은 배열 a의 첫 번째 요소(a[0])부터 다섯 번째 요소(a[4])까지 전체 범위를 오름차순으로 정렬합니다.

참고로 std::sort()는 기본적으로 오름차순으로 정렬하지만, 세 번째 인자에 비교 함수(예: greater<int>())를 전달하면 내림차순 정렬도 가능합니다. 또한 내부적으로 평균 O(n log n)의 시간 복잡도를 가지므로 성능이 우수하여 실무에서 널리 활용됩니다.