交换排序_起泡排序
程序代码:
void BubbleSort(Elem R[],int n)
{
i = n;
while(i > 1)
{
last_exchange = 1;
for(j = 1;j < i;j++)
if(R[j] > R[j+1])
{
swap(R[j],R[j+1]);
last_exchange = j;
}
i = last_exchange;
}
}
最好情况:记录有序,比较次数n-1,移动次数为0;
最差情况:记录逆序,比较次数(n-1)+(n-2)+---+1 = n(n-1)/2,移动次数为3n(n-1)/2。
稳定性:稳定。