C语言快速排序
#include <stdio.h> void print(int p[],int n){ //打印函数 for(int i=0;i<n;i++){ printf("%d ",p[i]); } printf("\n"); } void quickSort(int a[],int left,int right){//快速排序函数 int i=left; //声明左端点 int j=right; //声明右端点 int key=a[i]; if(left>=right)return; //如果只有一个数则退出 while(i!=j){ while(i<j&&a[j]>=key)j--;//对右边的数与key比较大小 a[i]=a[j]; while(i<j&&a[i]<=key)i++;//对左边的数与key比较大小 a[j]=a[i]; } a[i]=key; quickSort(a,left,i-1); //左排序 quickSort(a,i+1,right); //右排序 } int main(){ //主函数 int a[]={12,54,5,46,34,76,64,78,2,88};//声明数组 quickSort(a,0,9); //调用怕排序方法 print(a,10); //打印输出 }