快速排序 (递归思想)

来源:互联网 发布:note express for mac 编辑:程序博客网 时间:2024/06/07 14:09
#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;
原创粉丝点击