冒泡排序中的交換次數又稱爲反序數或逆序數,可用於體現數列的錯亂程度
冒泡排序僅對數組中相鄰元素進行比較和排序,讓數組元素像水中的氣泡一樣逐漸上浮,進而達到排序的目的,複雜度數量級爲O(N²)。
下面的代碼實例實現數組的升序排列。
#include<iostream>
#include<algorithm>
using namespace std;
int bubblesort{int a[],int n}{
int s=0;
bool flag=1;
for(i=0;flag;i++){
flag=0;
for(int j=n-1;j>=i+1;j--){
if(a[j]<a[j-1]){
swap(a[j],a[j-1]);
flag=1;
s++;
}
}
}
return s;}
其中i表示爲排序部分的開頭元素,從數組開頭向末尾移動。
j從數組的末尾開始,減少到i+1結束,逐一對相鄰元素比較排序。
其中加入了bool變量flag避免了排序好的部分在進行冒泡排序,一定程度上減少了時間複雜度。