快速排列
它无法输出排列后的数组 不知道是什么原因,希望大家指出来#include<stdio.h>
int partition(int r[],int left,int right)
{
int temp,l,h;
temp=r[left];
l=left;
h=right;
do
{
while(l<h&&temp<=r[h])
h--;
if(h>l)
r[l++]=r[h];
while(l<h&&temp>=r[l])
l++;
if(h>l)
r[h--]=r[l];
}while(h!=l);
r[l]=temp;
return l;
}
int quicksort(int r[],int left,int right)
{
int i;
i=partition(r,left,right);
if(left<right)
{
quicksort(r,left,i-1);
quicksort(r,i+1,right);
}
return 0;
}
int main()
{
int a;
int num[7]={3,1,2,4,5,7,6};
quicksort(num,0,6);
for(a=0;a<6;a++)
printf("%d ",num[a]);
return 0;
}