<算法导论>-快速排序的实现
#include <stdio.h> #include <stdlib.h> #define SIZE 10 //quickSort int part(int *a,int p,int r) { int x=a[r]; int i=p-1; int j,temp; int temp2; for(j=p;j<=r-1;j++) { if(a[j]<=x) { i++; temp=a[i]; a[i]=a[j]; a[j]=temp; } } temp2=a[i+1]; a[i+1]=a[r]; a[r]=temp2; return i+1; }; void quickSort(int *a,int p,int r) { if(p<r) { int q; q=part(a,p,r); quickSort(a,p,q-1); quickSort(a,q+1,r); } }; int main() { int a[SIZE]={1,22,323,434,5,61,7,8,91,10}; int i; quickSort(a,1,SIZE); printf("ok"); for(i=0;i<SIZE;i++) printf("%5d",a[i]); return 0; }