关于冒泡算法的改进
一.用一个整形类型的变量change来控制冒泡排序的次数,其中的原理是当部分数组有序时,可以令i=change来减少比较次数,代码如下:
void BubbleSort(RcdSqList &L) {
/* 元素比较和交换必须调用如下定义的比较函数和交换函数:*/
/* Status LT(RedType a, RedType b); 比较:"<" */
/* Status GT(RedType a, RedType b); 比较:">" */
/* void Swap(RedType &a, RedType &b); 交换 */
{
int i,j,change=1;
for(i=L.length;i>1&&change;i=change){
change=0;
for(j=1;j<i;j++)
if(GT(L.rcd[j],L.rcd[j+1])){
Swap(L.rcd[j],L.rcd[j+1]);
change=j;
}
}
}
}