//快排最差时间复杂度和冒泡排序是一样的都是O(N^2)
#include <stdio.h>
#define MAX 8
int rec_quik_sort(int *array, int left, int right)
{
int i ,j;
int tmp = 0;
int redix = 0;
if(left > right){
return;
}
i = left;
j = right;
redix = array[left];
while(i != j){
while(array[j] >= redix && i < j){
j--;
}
while(array[i] <= redix && i < j){
i++;
}
if(i < j){
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
array[left] = array[i];
array[i] = redix;
rec_quik_sort(array,left,i-1);
rec_quik_sort(array,i+1,right);
}
int main(int argc,const char* argv[])
{
int i;
int array[MAX];
for(i = 0; i < MAX; i++){
scanf("%d",&array[i]);
}
rec_quik_sort(array,0,MAX);
for(i = 0; i < MAX; i++){
printf("%d\t",array[i]);
}
printf("\n");
return 0;
}
//欢迎指正错误或者改进