永发信息网

谁能帮忙检查一下快排的代码?

答案:2  悬赏:10  手机版
解决时间 2021-07-26 15:30

#include<iostream>
using namespace std;
int a[1000]={};
int n;
void tryy(int l,int r)
{
int i=l,j=r;
int mid=a[(l+r)/2];
while(i<=j)
{ while(a[i]<mid)i++;
while(a[j]>mid)j--;
if(i<=j)//这里什么意思?
{ swap(a[i],a[j]); i++; j--;}
}
if(l<j) tryy(l,j);
if(i<r) tryy(i,r);
}
int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
tryy(1,n);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
system("pause");
return 0;
}
//代码有错误

可以的话高手们帮忙解决一下并且回答上面的注释,谢谢!

最佳答案
你写的代码怎么怪怪的... 咋取中间的那个数为基准.中间那数的左边从i=1开始加.右边从j=n开始减..这样下去i有可能会大于j.而那个时候已经排好了,不用再继续了已经. 哎呦喂.回答的好龊...
全部回答

Procedure qsort(l,r:longint);

var i,j,mid:longint;

begin

i:=l; j:=r; mid:=a[(l+r)div 2];

repeat

while a[i]<mid do inc(i);

while a[j]>mid do dec(j);

if i<=j then

begin

swap(a[i],a[j]);

inc(i); dec(j);

end;

until i>j;

if l<j then qsort(l,j);

if i<r then qsort(i,r);

end;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
不与别人攀比的名言,形容攀比的句子
怎么在网上查询QQ密保卡?
刚才我看到一个炫舞的消息,不过我给弄丢了,
手机空间什么时候可以养花滕?
中温锌结晶铀的研制
the most known person,the warmest partner
有一个电影,美国的,是关于外星人的,分为七
为什么人做梦梦不到自己清晰的面孔?
谁知到南宁一共有哪些中小学 要全名单
我是1990年6月初7生的.我想占卜一下爱情和财
以公司利益为重的语句,有关利益的句子
我好友的嘴好臭!我该怎么办啊!
Q旋舞装B的人有多少?
为什么187的手机号码申请QQ绑定不了
对女人说的最有效情话,一个女人,不管她以前有
推荐资讯
现在进行的东亚运动会
当你很想一个人的时候你会怎么做.
CATTI证书需要年检吗?
我要买一把中高档的大提琴 急!
红丸最上7力8智力能卖多少JB或QB
怎么才不想烦心事啊
味精兑百事喝了有什么反应!
DNF37剑魂!怎么升级快?
如果我好比一座山,这座山的精神是什么呢
给有工作的人的祝福语,有关工作缘分的句子
诺基亚专卖店买手机可以砍价吗能砍多少呢
用PS制作以酒类化妆品类为主题制作两张商业海
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?