演算法 氣泡排序

2021-10-25 12:11:41 字數 1342 閱讀 1635

1.1、排序是將乙個無序序列按照某個規則進行的有序排列,而氣泡排序是排序中最基礎的一種排序方法。

1.2、氣泡排序的核心是交換,每次通過交換的方式把當前剩餘元素的最大值移動到一段,當剩餘元素減少為0時,排序結束。

現在有乙個含有5個元素的陣列a,分別是 a[0]=7、a[1]=9、a[2]=4、a[3]=6、a[2]=2 , 現在要將它們按從小到大的順序排列。用氣泡排序,每次將最大的數交換到最右邊。

(1)第一次

a[0]與a[1]比較(7、9比較大小,7小),所以不動,此時序列為;

a[1]與a[2]比較(9、4比較大小,4小),所以把a[1]與a[2]交換,此時序列為;

a[2]與a[3]比較(9、6比較大小,6小),所以把a[2]與a[3]交換,此時序列為;

a[3]與a[4]比較(9、2比較大小,2小),所以把a[3]與a[4]交換,此時序列為;

第一次排序結束,一共進行了4次比較。

(2)第二次

a[0]與a[1]比較(7、4比較大小,4小),所以把a[0]與a[1]交換,此時序列為;

a[1]與a[2]比較(7、6比較大小,6小),所以把a[1]與a[2]交換,此時序列為;

a[2]與a[3]比較(7、2比較大小,2小),所以把a[2]與a[3]交換,此時序列為;

因為第一次排序最右邊的數字已經是最大了,所以第二次排序結束,一共進行了3次比較。

(3)第三次

a[0]與a[1]比較(4、6比較大小,4小),所以不變,此時序列為;

a[1]與a[2]比較(6、2比較大小,2小),所以把a[1]與a[2]交換,此時序列為;

第三次排序結束,一共進行了2次比較。

(4)第四次

a[0]與a[1]比較(4、2比較大小,2小),所以把a[0]與a[1]交換,此時序列為;

第四次排序結束,一共進行了1次比較。

我們可以看出到這裡序列已經有序了,所以氣泡排序結束。

我們從上面的說明可以看出當陣列元素有n個時進行了n-1次比較,每到下一輪比較,比較次數減少1次。

**如下:

#include

intmain()

;//定義一串無序的數字序列

int i,j;

for(i=

0;i<

4;i++)}

}for

(i=0

;i<

5;i++

)//輸出重新排序好的序列

printf

("%d "

,a[i]);

return0;

}

執行結果:

246

79

氣泡排序演算法 C 氣泡排序演算法排序詳解

氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

排序演算法 氣泡排序

一.氣泡排序的過程 公升值排序 1.將第乙個記錄的關鍵字與第二個記錄的關鍵字進行比較,若key 1 key 2 則交換。然後比較第二個與第三個,依此類推,直到第n 1個與第n個比較為止,第一趟排序完後,記錄最大的關鍵字會被排在最後面。2.將記錄的前n 1個關鍵字進行第二趟比較交換,直到前n 1個中最...