忙了一天,终于把老师布置的任务完成了,再巩固一下。
快速排序代码实现
void sortplus(int l,int r)
{
int i,j,mid,p;
i=l;j=r;//记录初始位置
mid=a[(l+r)/2];
do
{
while(a[i]>mid)i++;//寻找比中间数小的数
while(a[j]<mid)j--;//寻找比中间数大的数并与之交换(上边的)
if(i<=j)
{
swap(a[i],a[j]);
i++;j--;
}}while(i<=j)
if(l<j)sortplus(l,j)
if(i<r)sortplus(i,r);//未到两数边界继续递归搜索左右区间
}