【正确答案】void dbubble(RECORDNODE*r,int n)
{ int i,j;
RECORDNODE temp;
int ex=1;
i=0;
while(ex)
{ ex=0;
for(j=n-i-1;j>i;j--)
if(r[j].key<r[j-1].key)
{ ex=1;
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
}
for(j=i+1;j<n-i-1;j++)
if(r[j].key>r[j+1].key)
{ ex=1;
temp=r[j];
r[j]=r[j+1];
r[j+1]=temp;
}
i++;
}
}
【答案解析】