《C程序设计语言》P74
#include <stdio.h>
void sort(int a[], int i, int j);
void swap(int a[], int i, int j);
/*快排*/
int main()
{
int a[5] = {3, 5, 2, 4, 1}, i = 0, j = 4;
sort(a, i, j);
int k;
for(k = 0; k < 5; k++)
printf("%d ", a[k]);
return 0;
}
//排序
void sort(int a[], int i, int j)
{
if(i >= j)
return;
int left = i, right = j;
int key = a[i];
while(i < j){
while(a[j] >= key && i < j){
--j;
}
//swap(a, a[i], a[j]);
a[i] = a[j];
while(a[i] <= key && i < j)
++i;
//swap(a, a[i], a[j]);
a[j] = a[i];
}
a[i] = key;
sort(a, left, j-1);
sort(a, j+1, right);
}
/*void swap(int a[], int i, int j)
{
int temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}*/