[알고리즘 예제][정렬]Q_sort.
Algorithm/알고리즘 예제코드

[알고리즘 예제][정렬]Q_sort.

#include<iostream>
#include<vector>
using namespace std;


void quickSort(vector<int> &v, int i, int j)
{
    // 벡터의 크기가 0이나 1.
    if(i>=j) return;
    int pivot = v[(i+j)/2];
    int left = i;
    int right = j;
    while(left<=right)
    {
		// 내림차순 일때는 부등호 방향을 서로 바꾼다.
        while(v[left]<pivot) left++;
        while(v[right]>pivot) right--;
        if(left<=right)
        {
            swap(v[left],v[right]);
            left++; right--;
        }
    }
    quickSort(v,i,right);
    quickSort(v,left,j);
}
int main()
{
    vector<int> v;
    v = {0,1,2,3,4,5,9,5,8,7,5,1};
    quickSort(v, 0,v.size()-1);
    for(int i=0; i<v.size(); i++)
        cout << v[i] << endl;
    return 0;
}

'Algorithm > 알고리즘 예제코드' 카테고리의 다른 글

소수판별  (0) 2021.09.16
Sort  (0) 2021.09.10
정규식  (0) 2021.08.25
GCD와 LCM  (0) 2021.08.25
[알고리즘 예제][그래프탐색]BFS  (0) 2021.07.06