티스토리 뷰

자료구조

퀵소트 구현 연습

심재철 2018. 8. 9. 20:37
#include <iostream>
using namespace std;

void swap(int* a,int *b){
int temp = *a;
*a = *b;
*b = temp;
}

int quick(int* arr,int left,int right){
if(left<right) {
int pivot = left;
int i = left;
int j = right;
while (i < j) {
while (arr[pivot] > arr[i]) //피벗보다 왼쪽을 스캔하면서 비정상인놈 걸러냄(피벗보다 큰놈들 = 비정상)
i++;
while (arr[pivot] < arr[j]) //피벗보다 오른쪽을 스캔하면서 비정상인놈 걸러냄(피벗보다 작은놈들 = 비정상)
j--;
if (i < j) {
swap(&arr[i], &arr[j]);
i++;j--;
}
}
swap(&arr[left], &arr[j]);
pivot = j;

quick(arr, left, pivot - 1);
quick(arr, pivot + 1, right);
}
}

int main() {
int arr[6] = {6,5,4,3,2,1};
quick(arr, 0, 5);
for (int k : arr)
cout << k << " ";
cout<<endl;
return 0;
}


댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함