冒泡排序:
O(N^2),稳定排序。最大的优点是简单易懂,看代码就能明白。
#include<iostream>
using namespace std;
int bbsort(int a[],int N)
{
int sum=0;
for(int i=0; i<N; i++)
{
for(int j=i;j>=0;j--){
if(a[j]<a[j-1]){
swap(a[j],a[j-1]);
sum++;
}
}
}
return sum;
}
int main()
{
int a[5]= {5,3,2,4,1};
int sum=bbsort(a,5);
for(int i=0;i<5;i++)cout<<a[i]<<" ";
cout<<endl<<"原来序列的反序数:"<<sum<<endl;
return 0;
}
如果一个无序数列,使用冒泡排序,需要经过N次交换操作(swap),那么,N为这个无序数列的反序数,又称逆序数。