快速排序?解决思路

快速排序????、

//快速排序
#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);
    }
}