注册 登录
编程论坛 C++教室

(简单的快速排序)需要改正

caya1983 发布于 2007-07-02 16:59, 504 次点击
#include <iostream.h>
int sum=0;
void fu(int a[],int left,int right)
{
int i,j,mid,t;
mid=a[(left+right)/2];
do
{
for(i=left;i<=(left+right)/2;i++)
{
if(a[i]>=mid)
break;
}
for(j=right;j>=(left+right)/2;j--)
{
if(a[j]<=mid)
break;
}
t=a[i];
a[i]=a[j];
a[j]=t;
sum+=1;
}
while(i<=j);
if(left<j)
fu(a,left,j);
if(right>i)
fu(a,i,right);
}
void quitsort(int a[],int n)
{
fu(a,0,n-1);
cout<<"QUITSORT排序次数为:\t"<<sum;
cout<<endl;
}

[此贴子已经被作者于2007-7-2 17:00:49编辑过]

1 回复
#2
aipb20072007-07-02 17:52
错误很多,逻辑比较混乱。

你这样能得到结果吗?
1