#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define SIZE 10
int n[SIZE];
void init(int n[], int len){
int i;
srand((unsigned)time(NULL));
for (i=0; i<len; i++){
n[i] = rand()%10+1;
}
}
void printout(int n[], int len){
int i;
for (i=0; i<len; i++){
printf("%d ", n[i]);
}
printf("\n");
}
// 注意不断和远端数据进行比较
void QuickSort(int n[], int low, int high){
int i, j;
int tmp;
if (low >= high) return;
i = low;
j = high;
tmp = n[i];
while (i <j ){
/////////////////////////////////
while (i<j && tmp <n[j]) j--;
if (i<j) n[i++] = n[j];
///////////////////////////////
while (i<j && n[i]<tmp) i++;
if (i<j) n[j--] = n[i];
}
n[i] = tmp;
QuickSort(n, low, j-1);
QuickSort(n, i+1, high);
}
int main(){
init(n, SIZE);
printout(n, SIZE);
QuickSort(n, 0, SIZE-1);
printout(n, SIZE);
return 0;
}
运行图: