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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <cstdio> using namespace std; void QuickSort(int * mArray, int left, int right) { if (left == right) { return; } /* Integer */ int mleft = left; int mright = right; int mPivot = mArray[left]; while (left < right) { while ((mArray[right] >= mPivot) && (left < right)) { right--; } if (left != right) { mArray[left] = mArray[right]; } left++; while ((mArray[left] <= mPivot) && (left < right)) { left++; } if (left != right) { mArray[right] = mArray[left]; right--; } } mArray[left] = mPivot; mPivot = left; left = mleft; right = mright; if (left < mPivot) { QuickSort(mArray, left, mPivot - 1); } if (right > mPivot) { QuickSort(mArray, mPivot + 1, right); } } int mArray[5000001]; int main(void) { /* Integer */ int num1 = 0, num2 = 0; scanf("%d %d", &num1, &num2); for (int count = 0; count < num1; count++) { scanf("%d", &*(mArray + count)); } QuickSort(mArray, 0, num1-1); printf("%d\n", *(mArray + (num2 - 1))); return 0; } | cs |
https://www.acmicpc.net/problem/11004
시간 줄일려고 입력도 scanf로 받는데;;;;
내 자존심 때문에 알고리즘 헤더파일 쓰기 싫다.
sort 쓰기 싫다
nth element 뭐임???
Quick Selection
그럼 궁금한게 있는 알고리즘 라이브러리에 있는 SORT 함수는 Quick Selection 임?
sort랑 selection 의미를 아냐?
근데 sort() 함수로 푼사람들은 뭥미?
sort로 풀었으면 library가 존나 최적화되서 아슬아슬하게 통과됬나보지. 그리고 BOJ 언어마다 통과시간 다르다
우선 감사 ㅠㅠ 이거 한번 찾아봐야 긋당
데이터가 500만개 이미 정렬된게 들어왔다면?