공부
[Sort] QuickSort
승가비
2018. 9. 11. 21:24
728x90
[Sort] QuickSort
#include <iostream>
using namespace std;
#define SIZE 1000000
int swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
void print(int *arr, int n) {
for(int i=0; i<n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void quickSort(int *arr, int left, int right) {
if(left >= right) {
return;
}
int pivot = arr[(left + right) / 2];
int r = right;
int l = left;
while(l <= r) {
while (pivot > arr[l]) l++;
while (pivot < arr[r]) r--;
if(l < r) {
swap(arr[l], arr[r]);
l++;
r--;
}
}
quickSort(arr, left, l-1);
quickSort(arr, l+1, right);
}
int main() {
int n;
int arr[SIZE];
cin >> n;
for(int i=0; i<n; i++) {
cin >> arr[i];
}
quickSort(arr, 0, n-1);
print(arr, n);
return 0;
}
728x90