1. sort 함수란?

sort()는 배열이나 벡터 같은 자료를 정렬할 때 사용하는 함수이다.

C++에서는 <algorithm> 헤더에 포함되어 있다.

#include<algorithm>

 

 

2. 기본 문법

sort(시작위치, 끝위치);


예시:

sort(v.begin(),v.end());

 

v.begin()부터 v.end() 전까지 정렬한다. (오름차순)

 

3. 오름차순 정렬

작은 값 -> 큰 값 순서로 정렬된다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> v = {5, 2, 8, 1, 3};

    sort(v.begin(), v.end());

    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << " ";
    }

    return 0;
}


출력:

12358

 

 

4. 내림차순 정렬

큰 값 -> 작은 값 순서로 정렬하려면 greater<int>()를 사용한다.

sort(v.begin(),v.end(),greater<int>());


전체 예시:

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

int main() {
    vector<int> v = {5, 2, 8, 1, 3};

    sort(v.begin(), v.end(), greater<int>());

    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << " ";
    }

    return 0;
}


출력:

85321

 

 

5. 배열 정렬

배열도 정렬할 수 있다.

intarr[5] = {5,2,8,1,3};

sort(arr,arr+5);


전체 예시:

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int arr[5] = {5, 2, 8, 1, 3};

    sort(arr, arr + 5); // arr = 시작주소 => arr[0]~arr[4] 까지 정렬

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

    return 0;
}

*sort(arr, arr + 5);은 arr+5 까지 정렬하는게 아니다 arr[0]~arr[4]까지 정렬 의미

출력:

12358

 

 

 

6. 문자열 정렬

문자열도 정렬 가능하다.

strings ="dcba";

sort(s.begin(),s.end());

 

예시:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string s = "dcba";

    sort(s.begin(), s.end());

    cout << s;

    return 0;
}


출력:

abcd


내림차순:

sort(s.begin(),s.end(),greater<char>());


출력:

dcba

 

최종정리

sort()는 코딩테스트에서 정말 자주 사용되는 함수이다.

핵심은 아래 3가지다.

sort(v.begin(),v.end());// 오름차순
sort(v.begin(),v.end(),greater<int>());// 내림차순
sort(arr,arr+n);// 배열 정렬 단, arr[0]~arr[n-1]까지 정렬

+ Recent posts