C 氣泡排序及其優化

2021-09-25 17:57:03 字數 1326 閱讀 8844

1、氣泡排序

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

2、演算法原理

namespace bubble

; console.writeline("排序前的陣列:");

foreach (int item in arr)

console.writeline();

//外層迴圈是控制內層迴圈的次數,也就是說外層迴圈每迴圈一遍,讓內層迴圈每次迴圈的次數減一次這樣就保證內層迴圈每次迴圈結束後最後面乙個都是最大

for (int i = 0; i < arr.length-1; i++)}}

console.writeline("排序後的陣列:");

foreach (int item in arr)

console.writeline();

console.readkey();}}

}}

int sums = ;

int comparecount = 0;

console.writeline("排序前的陣列:");

foreach (int item in sums)

console.writeline();

//氣泡排序法優化

//當迴圈內交換不再進行時,也就是整個序列已經有序,這時可以結束排序以達到優化目的

bool flag = true;

for (int i = 0; i < sums.length - 1 && flag; i++) //總共要比較的趟數

comparecount++;}}

console.write("使用氣泡排序後得到的順序為:");

for (int i = 0; i < sums.length; i++) //將排序後的數值按序輸出

console.writeline();

console.writeline("排序次數為:");

氣泡排序及其優化

然則 2015年12月30日發布 氣泡排序是比較簡單的,其排序步驟就是比較相鄰元素並將較大的往後移。每掃瞄一輪,將確定乙個元素的位置。實現如下 void sort int a 對氣泡排序的優化主要是減少交換次數。如果一次掃瞄中元素沒有發生交換,那麼排序就可以結束了。為此可設定一標誌量flag,預設為...

氣泡排序及其優化

課程名稱 資料結構 實驗專案名稱 排序演算法的實現與比較 實驗目的 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...