#include <iostream>
#include <stdlib.h>
using namespace std;
void QuickSort(int *array, int len) {
if (len <= 1)
return;
int*left = new int[len], *right = new int[len];
int left_idx = 0, right_idx = 0;
int key = array[0];
for (int i = 1; i < len; i++) {
if (array[i] < key)
left[left_idx++] = array[i];
if (array[i] > key)
right[right_idx++] = array[i];
}
QuickSort(left, left_idx);
QuickSort(right, right_idx);
int idx = 0;
for (int i = 0; i < left_idx; i++)
array[idx++] = left[i];
array[idx++] = key;
for (int i = 0; i < right_idx; i++)
array[idx++] = right[i];
delete[] left;
delete[] right;
}
int main() {
int a[10] = { 0,9,7,1,4,2,3,5,6,8 };
QuickSort(a, 10);
for(int i=0;i<10;i++)
cout << a[i];
system("pause");
return 0;
}
#include <stdlib.h>
using namespace std;
void QuickSort(int *array, int len) {
if (len <= 1)
return;
int*left = new int[len], *right = new int[len];
int left_idx = 0, right_idx = 0;
int key = array[0];
for (int i = 1; i < len; i++) {
if (array[i] < key)
left[left_idx++] = array[i];
if (array[i] > key)
right[right_idx++] = array[i];
}
QuickSort(left, left_idx);
QuickSort(right, right_idx);
int idx = 0;
for (int i = 0; i < left_idx; i++)
array[idx++] = left[i];
array[idx++] = key;
for (int i = 0; i < right_idx; i++)
array[idx++] = right[i];
delete[] left;
delete[] right;
}
int main() {
int a[10] = { 0,9,7,1,4,2,3,5,6,8 };
QuickSort(a, 10);
for(int i=0;i<10;i++)
cout << a[i];
system("pause");
return 0;
}