백준 2750 - 수 정렬하기
프로그래밍 이모저모/프로그래밍 2019. 8. 14. 22:17
퀵 소트를 만드는 문제. 퀵 소트의 정리는 내일 정리해서 올리자.
#include <iostream>
#include <vector>
using namespace std;
vector <int> Arr;
void partition(int start, int end)
{
if (start > Arr.size() - 1 || end < 0 || start >= end)
return;
int pivot = start;
int i = start;
int j = end;
while (i < j)
{
while (Arr[j] > Arr[pivot])
j--;
while (Arr[i] <= Arr[pivot] && i < j)
i++;
swap(Arr[i], Arr[j]);
}
swap(Arr[j], Arr[pivot]);
partition(start, j - 1);
partition(j + 1, end);
}
int main()
{
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
int num;
cin >> num;
Arr.push_back(num);
}
partition(0, N-1);
for (int i = 0; i < N; i++)
{
cout << Arr[i] << endl;
}
return 0;
}
'프로그래밍 이모저모 > 프로그래밍' 카테고리의 다른 글
백준 10828 - 스택 (0) | 2019.08.14 |
---|---|
백준 1920 - 수 찾기 (0) | 2019.08.14 |
백준 1149 - RGB거리 (0) | 2019.08.13 |
백준 2003 - 수들의 합 (0) | 2019.08.12 |
백준 1037 - 약수 (0) | 2019.08.12 |