#include <iostream>
using namespace std;
void fast_sort(int *input, int left, int right) {
if (left >= right) {
return;
}
// from lower to higher
int base = input[left];
int i = left;
int j = right;
int tmp;
while (i < j) {
while (input[j] >= base && j > i)
j--;
while (input[i] <= base && i < j)
i++;
if (i < j) {
tmp = input[j];
input[j] = input[i];
input[i] = tmp;
}
}
input[left] = input[i];
input[i] = base;
for (int k = 0; k < 10; ++k) {
cout << input[k] << ',';
}
cout << endl;
fast_sort(input, left, i - 1); // left recursive
fast_sort(input, i + 1, right); // right recursive
}
int main() {
int inputs[10] = {12, 2, 8, 60, 21, 6, 123, 23, 6, 29};
fast_sort(inputs, 0, 9);
return 0;
}
C++快速排序
最新推荐文章于 2024-10-14 17:54:02 发布