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個中最...