氣泡排序及其優化

2021-07-24 03:29:58 字數 507 閱讀 1614

然則 2023年12月30日發布

氣泡排序是比較簡單的,其排序步驟就是比較相鄰元素並將較大的往後移。每掃瞄一輪,將確定乙個元素的位置。**實現如下:

void

sort

(int a)}}

}

對氣泡排序的優化主要是減少交換次數。如果一次掃瞄中元素沒有發生交換,那麼排序就可以結束了。為此可設定一標誌量flag,預設為false,如果掃瞄中發生交換了則把flag置為true,下輪掃瞄前先檢查這個變數,如果flag=false則排序結束。

更進一步,可以記錄每次掃瞄中最後一次交換的位置,下次掃瞄的時候只要掃瞄到上次的最後交換位置就行了,因為後面的都是已經排好序的,無需再比較。**實現如下:

void

sort

(int a)}}

}

氣泡排序及其優化

課程名稱 資料結構 實驗專案名稱 排序演算法的實現與比較 實驗目的 1 掌握優化氣泡排序的演算法 實驗要求 1 對於輸入的任意乙個整型資料序列,將其進行氣泡排序,要求該氣泡排序的演算法為優化之後的演算法,即 a.設定flag變數,當一趟排序結束後flag的值未更新,剛說明序列已經有序,停止排序 b....

氣泡排序及其優化

bubble sort比較簡單,本文首先列出了基礎版本bubble sort的偽 之後做兩點小的優化。1.基礎版本bubblesort 原始版的bubblesort 時間複雜度為o n 2 function bubblesort array x,int length for int i 0 i le...

氣泡排序及其優化

部分使用了utils類,定義在這篇文章中有說明。核心 c 實現 void bubblesort int a,int n for int i n 1 i 0 i 試想一下,如果待排序的序列是 1,2,3,4,5,6,7,9,8 也就是倒數第一和倒數第二個關鍵字需要交換,別的都已經是正常順序,當i 1時...