69,336
社区成员
发帖
与我相关
我的任务
分享
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];
}
}
}
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];
}
}
}
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);
}
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 的回复:]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];
}
}
}