<algorithm>
헤더 파일에 선언되어있다.O(nlogn)
의 시간 복잡도를 가질 수 있다.아래 예시들에서는 vector 자료구조를 정렬해보고자 한다.
#include <algorithm>
vector<자료형> v;
sort(v.begin(), v.end());
🖥️ 예제 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v = { 5, 2, 3, 1, 7, 0, 4, 6 };
sort(v.begin(), v.end());
for (int i = 0; i < v.size(); i++)
cout << v[i] << " ";
}
✔️ 출력 결과
#include <algorithm>
vector<자료형> v;
sort(v.begin(), v.end(), greater<자료형>());
greater<자료형>()
함수를 마지막 인수로 추가해준다.🖥️ 예제 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v = { 5, 2, 3, 1, 7, 0, 4, 6 };
sort(v.begin(), v.end(), greater<int>());
for (int i = 0; i < v.size(); i++)
cout << v[i] << " ";
}
✔️ 출력 결과
bool Compare(자료형 a, 자료형 b)
{
return 조건문
}
#include <algorithm>
vector<int> v;
sort(v.begin(), v.end(), Compare);
🖥️ 예제 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool Compare(pair<int, string> a, pair<int, string> b)
{
int a_int = a.first;
int b_int = b.first;
return a.first < b.first;
}
int main()
{
vector<pair<int, string>> v;
v.push_back(pair<int, string>(2, "C"));
v.push_back(pair<int, string>(0, "A"));
v.push_back(pair<int, string>(1, "B"));
sort(v.begin(), v.end(), Compare);
for (int i = 0; i < v.size(); i++)
cout << v[i].second << endl;
}
✔️ 출력 결과
❗배열에서 사용 방법
int arr[100];
sort(arr, arr + 100)
sort(arr, arr + 100, Compare)