일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 엑셀
- getline
- 시간복잡도
- string 메소드
- iOS14
- double ended queue
- 프레임워크와 라이브러리의 차이
- 장고란
- UI한글변경
- Django Nodejs 차이점
- 매크로
- 입/출력
- Django란
- 2557
- 입출력 패턴
- 구조체와 클래스의 공통점 및 차이점
- 알고리즘 공부방법
- 자료구조
- scanf
- 백준
- k-eta
- 표준 입출력
- correlation coefficient
- vscode
- 연결요소
- EOF
- 이분그래프
- c++
- string 함수
- Django의 편의성
Archives
- Today
- Total
Storage Gonie
(25) C++ algorithm헤더의 nth_element 사용법 본문
반응형
용도 : sort()가 전체를 다 정렬시킨다면 nth_element()는 부분적으로 정렬을 시키는 함수이다.
1. 헤더파일
#include<algorithm>
2. 함수형태
- 시작과 끝 Iterator를 맨 왼쪽과 왼 오른쪽에 넣어주고, 가운데에 index로 어디 자리가 확정될 때까지 정렬을 진행할지 넣어줌.
void nth_element( RandomIt first, RandomIt nth, RandomIt last );
3. 사용방법
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
cin >> v[i];
// index : 0번째 자리가 확정날 때 까지만 정렬을 진행(가장 작은 값)
nth_element(v.begin(), v.begin()+ 0, v.end());
cout << v[0] << "\n"
// index : 1번째 자리가 확정날 때 까지만 정렬을 진행(두번째로 작은 값)
nth_element(v.begin(), v.begin()+ 1, v.end());
cout << v[1] << "\n"
// index : 중간 자리가 확정날 때 까지만 정렬을 진행(중간값)
nth_element(v.begin(), v.begin()+ v.size()/2, v.end());
cout << v[v.size()/2] << "\n"
// index : 맨 끝 자리가 확정날 때 까지만 정렬을 진행(가장 큰 값)
nth_element(v.begin(), v.end()-1, v.end());
cout << v[v.size()-1] << "\n"
// index : 맨 끝 자리가 확정날 때 까지만 정렬을 진행(두번째로 큰 값)
nth_element(v.begin(), v.end()-1, v.end());
cout << v[v.size()-2] << "\n"
}
4. 정렬을 내림차순으로 변경하는 법
- sort와 마찬가지로 맨 마지막 인자에 조건을 추가해주면 됨
nth_element(v.begin(), v.begin()+ 0, v.end(), greator<int>()); // 내림차순
nth_element(v.begin(), v.begin()+ 0, v.end(), less<int>()); // defualt로 오름차순
반응형
'알고리즘 > 문제해결을 위한 C++ 공부' 카테고리의 다른 글
(27) C++ cstring 헤더의 memset 사용법 (0) | 2019.05.24 |
---|---|
(26) C++ for ( : ) 방식 사용법 (0) | 2019.05.24 |
(24) C++ map헤더의 map 사용법 (0) | 2019.05.19 |
(23) C++ tuple헤더의 tuple 사용법 (0) | 2019.05.14 |
(22) C++ utility헤더의 pair 구조체 (0) | 2019.05.14 |
Comments