冒泡排序怎么记录关键字移动和比较次数

wxd101945520 2011-06-08 08:07:32
rt
void BubbleSort(SqList &L)
{ int i,j;

for(j=0;j<10;j++)

for(i=0;i<10-j;i++)
{
if(LT(L.r[i+1].key,L.r[i].key))

{L.r[0]=L.r[i];
L.r[i]=L.r[i+1];
L.r[i+1]=L.r[0];

}
}


}

在线等啊
...全文
1446 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
swlilike 2011-06-09
  • 打赏
  • 举报
回复
代码单步跟踪学习, 这样进步快
蓝染忽右介 2011-06-09
  • 打赏
  • 举报
回复
oid BubbleSort(SqList &L)
{ int i,j;

for(j=0;j<10;j++)

for(i=0;i<10-j;i++)
{
//这里每次执行if判断
if(LT(L.r[i+1].key,L.r[i].key))
{
//满足if条件就移动,注意每次移动三次、
L.r[0]=L.r[i];
L.r[i]=L.r[i+1];
L.r[i+1]=L.r[0];

}
}


}
小小攻城师 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wxd101945520 的回复:]

但是这样计算的比较次数是55,但是理论上不是应该是45次?
[/Quote]
你代码的问题for(i=0;i<10-j;i++)你把他改成i=1
试试就知道了。
i和j同为0,本身没有必要和本身比较吧。
赵4老师 2011-06-09
  • 打赏
  • 举报
回复
void BubbleSort(SqList &L) {//将L.r[1..10]按L.r[1..10].key从大到小排序
int i,j;
int c=0;//比较此处
int m=0;//移动次数

for (i=1;i<10;i++) {
for (j=i+1;j<=10;j++) {
c++;
if (LT(L.r[i].key,L.r[j].key)) {
L.r[0]=L.r[i];
L.r[i]=L.r[j];
L.r[j]=L.r[0];
m+=3;
}
}
}
printf("c,m=%d,%d\n",c,m);
}
wxd101945520 2011-06-08
  • 打赏
  • 举报
回复
但是这样计算的比较次数是55,但是理论上不是应该是45次?
ryfdizuo 2011-06-08
  • 打赏
  • 举报
回复
m需要加3,if里面有三次移动。
wxd101945520 2011-06-08
  • 打赏
  • 举报
回复
void BubbleSort(SqList &L)
{ int i,j,n=0,m=0;

for(j=0;j<10;j++)

for(i=0;i<10-j;i++)
{ n++;
if(LT(L.r[i+1].key,L.r[i].key))

{m++;
L.r[0]=L.r[i];
L.r[i]=L.r[i+1];
L.r[i+1]=L.r[0];

}
}


}
是这个意思么?n是比较次数,m是移动次数?[Quote=引用 3 楼 dizuo 的回复:]

C/C++ code
oid BubbleSort(SqList &L)
{ int i,j;

for(j=0;j<10;j++)

for(i=0;i<10-j;i++)
{
//这里每次执行if判断
if(LT(L.r[i+1].key,L.r[i].key))
……
[/Quote]
ryfdizuo 2011-06-08
  • 打赏
  • 举报
回复
oid BubbleSort(SqList &L)
{ int i,j;

for(j=0;j<10;j++)

for(i=0;i<10-j;i++)
{
//这里每次执行if判断
if(LT(L.r[i+1].key,L.r[i].key))
{
//满足if条件就移动,注意每次移动三次、
L.r[0]=L.r[i];
L.r[i]=L.r[i+1];
L.r[i+1]=L.r[0];

}
}


}
就想叫yoko 2011-06-08
  • 打赏
  • 举报
回复
比较次数加最里面那个for循环中
移动次数加if中
wxd101945520 2011-06-08
  • 打赏
  • 举报
回复
应该加在哪里呢?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧