Notice
Recent Posts
Recent Comments
Link
할껀하고놀자
[알고리즘] 퀵 정렬 본문
728x90
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
void quick_sort(int * data, int start, int end) {
if (start >= end) {
return;// 원소가 1개인 경우.
}
int pivot = start;
int i = pivot + 1;
int j = end;
int tmp;
while (i <= j) {
// 포인터가 엇갈릴 때까지 반복해준다.
while (i <= end && data[i] <= data[pivot]) {
i++;
}
while (j > start && data[j] >= data[pivot]) {
j--;
}
if (i > j) {
tmp = data[j];
data[j] = data[pivot];
data[pivot] = tmp;
}
else {
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
for (int i = 0; i < 10; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
quick_sort(data, start, j - 1);
quick_sort(data, j + 1, end);
}
int main() {
int data[10] = { 1,10,5,8,7,6,4,3,2,9 };
quick_sort(data, 0, 9);
for (int i = 0; i < 10; i++)
{
cout << data[i] << " ";
}
return 0;
}
'[IT] > 알고리즘' 카테고리의 다른 글
[알고리즘] 간단한 dfs 구현 (C++) (0) | 2019.05.31 |
---|---|
[알고리즘] 간단한 bfs 구현 (C++) (0) | 2019.05.31 |
[알고리즘] 간단한 queue 구현(C++) (0) | 2019.05.31 |
[알고리즘] 간단한 스택 사용(C++) (0) | 2019.05.31 |
[알고리즘] stl 정렬 알고리즘 사용하기. (C++) (0) | 2019.05.31 |
Comments