使用bool變量的冒泡排序法

冒泡排序中的交換次數又稱爲反序數或逆序數,可用於體現數列的錯亂程度

冒泡排序僅對數組中相鄰元素進行比較和排序,讓數組元素像水中的氣泡一樣逐漸上浮,進而達到排序的目的,複雜度數量級爲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避免了排序好的部分在進行冒泡排序,一定程度上減少了時間複雜度。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章