快速排序实现:
具体代码:
#include <stdio.h>
void QuickSort(int a[],int I,int J){
int temp;
int i=I,j=J;
if(i<j){
temp=a[i];
while(i!=j){
while(i<j&&a[j]>temp) --j;//从右开始找比temp小的数(准备放到左边去)
if(i<j){
a[i]=a[j];
++i;
}
while(i<j&&a[i]<temp) ++i;//从左开始找比temp大的数(准备放到右边去)
if(i<j){
a[j]=a[i];
--j;
}
}
a[i]=temp;
QuickSort(a,I,i-1);
QuickSort(a,i+1,J);
}
}
int main( )
{
int a[11]={49,38,65,97,76,13,27,354,2,490,33},I=0,J=11,i;
QuickSort(a,I,J);
for(i=0;i<11;i++){
printf("%d ",a[i]);
}
return 0;
}
输出结果:
2 13 27 33 38 49 65 76 97 354 490 请按任意键继续. . .