stl - sort 사용하기
sorting을 할때 C로 짜면 merge sort를 nlogn으로 확정되어서 사용했었는데 구현이 좀 걸려서 ㅡ.ㅡ;
stl의 sort를 사용하면 nlogn의 복잡도를 가지구 처리가 가능하다고 해서 사용하려고 한다.
기본적은 qsort와 구조는 같이 보인다.
//include algorithm
#include
using namespace std;
//기본 오름차순으로 정렬.
//변수가 배열일 경우
int a[10]={0,1,2,3,4,5,6,7,8,9};
sort(a, a+10); //중요 : 시작주소와 마지막 주소+1까지 넣어야지만 a[0]~ [a9]까지 정렬을 한다.
sort(&a[0], &a[10]); // 기본적으로 오름차순으로 정렬한다.
sort(start,end,grearter<자료형>()) // 내림차순 정렬자료형>
//특정 조건으로 정렬을 할 경우
bool compare(type a, type b)
{
return a<b; //오름차순 내림차순은 a>b;
}
sort(a, a+10, compare);
변수가 vector일 경우
vector
sort(v.begin(), v.end());
sort(v.begin(), v.end(). compare);
간단한 예제
#include <unordered_map>
#include <algorithm>
#include <vector>
#include <stdio.h>
using namespace std;
void main()
{
int a[10] = { 8,7,4,6,7,1,0,8,4,5 };
printf("before sort :");
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
sort(a, a + 10);
printf("\n after sort :");
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
}
ref : https://leeeegun.tistory.com/5
https://m.blog.naver.com/ndb796/221227975229
\