快速排序?解决思路
快速排序????、
------解决方案--------------------
//快速排序
#include <stdio.h>
void quicksort(int list[],int l,int r)
{
int dang,i,j;
int temp;
if(l<r)
{
i=l;
j=r;
dang=list[l];
while(i<j)
{
while(list[i]<dang )i++;
while(list[j]>dang )j--;
if(i<j)
{
temp=list[j];
list[j]=list[i];
list[i]=temp;
}
}
temp=list[j];
list[j]=list[l];
list[l]=temp;
quicksort(list,l,j-1);
quicksort(list,j+1,r);
}
}
void main()
{
int list[5]={9,6,2,5,3};
quicksort(list,0,4 );
printf("%d %d %d %d %d ",list[0],list[1],list[2],list[3],list[4]);
}
//9 6 2 5 3 Press any key to continue
》》》》》》》》求失败的原因
c
list
------解决方案--------------------
void quicksort(int list[],int l,int r)
{
int dang,i,j;
int temp;
if(l<r)
{
i=l;
j=r;
// dang=list[l];
while(i<j)
{
dang=list[i]; // 加这句
while(list[i]<dang )i++;
while(list[j]>dang )j--;
if(i<j)
{
temp=list[j];
list[j]=list[i];
list[i]=temp;
}
}
temp=list[j];
list[j]=list[l];
list[l]=temp;
quicksort(list,l,j-1);
quicksort(list,j+1,r);
}
}