# include<stdio.h>
# include<stdlib.h>
void quick_sort(int num[],int left,int right)
{
int i,j,t;
int x=num[left];//基准数
i=left;
j=right;
if (left>right)
return ;//结束循环
while(i!=j)
{//注意:必须首先从右边开始!!
while(num[j]>=x&&(i<j))//从右边开始
j--;
while(num[i]<=x&&(i<j))//然后看左边
i++;
if (i<j)
{
t=num[i];num[i]=num[j];num[j]=t;
}
}
//基准数归位
num[left]=num[i];
num[i]=x;
//递归调用
quick_sort(num,left,i-1);
quick_sort(num,i+1,right);
}
int main()
{
int i;
int num[]={3,5,6,2,4,0,8,9};
for(i=0;i<8;i++)
printf("%d\t",num[i]);
printf("\n");
quick_sort(num,0,7);
for(i=0;i<8;i++)
printf("%d\t",num[i]);
return 0;
}
快速排序算法自实现
最新推荐文章于 2019-05-19 19:04:52 发布