排序 1 氣泡排序

2021-10-16 09:47:37 字數 786 閱讀 6750

目錄

1.什麼是氣泡排序

2.氣泡排序的關鍵點

3.氣泡排序應用

假設待排序列為9 6 4 2 7 8 5 3 1,要求是讓待排序列按遞增順序排列。氣泡排序就是對待排序列掃瞄一次,就可以使得最大的9就位。具體過程排序過程是:先9和6比較,比6大所以位置互換得到6 9 4 2 7 8 5 3 1,然後9和4做比較,比4大互換位置得到6 4 9 2 7 8 5 3 1,接著和2進行比較,比2大互換位置得到6 4 2 9 7 8 5 3 1。。。。就這樣一直比較下去,比較8次,也就是序列元素總個數n-1次。最終經過第一輪比較得到結果6 4 2 7 8 5 3 1 9,可以看出進過一輪的比較後,肯定會讓最大的元素就位。

氣泡排序的特點是進過一輪比較後,待排序列的最大或最小的元素一定會就位,但是其他元素的位置和初始序列是一摸一樣,原封未動的。因此需要對經過第一輪調整後的序列再做交換排序,直到整個序列完全有序。怎樣才能知道序列已經有序了呢?關鍵點1:就是如果一趟掃瞄過程中,沒有發生元素交換動作,則序列就一定有序了。此外我們發現一趟掃瞄過程就要有乙個元素就位,關鍵點2:那麼下乙個待排元素的比較次數就可以減一,因為最後乙個元素已經是最大或最小了,沒有再比較的必要。

typedef int elmenttype;

void bubblesort(elmenttype *s, int n)

}if(!flag)//already in sort

break;

}}

排序(1) 氣泡排序

排序演算法是經久不衰的經典入門演算法,一般認為是,給定一組數,給出從小到大排序的結果。主要演算法有 選擇,插入,冒泡,歸併,希爾,基數,快速,桶排序等等。每種排序有其自身的特性,適合不同的場景。分析排序演算法主要從3個方面 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣...

1 氣泡排序

氣泡排序 這裡採用公升序排序 是不斷比較臨近的兩個元素大小,若出現兩個元素為降序的 l i l i 1 則交換兩者的值。把最最小值冒泡至前面 根據判斷條件不同而不同 迴圈結束後,則是排序好的序列。我寫的程式是 每次都用前面的元素和後面的元素比較,若出現降序則交換。所以冒泡方式是,小的往前面移動。例如...

1 氣泡排序

基本思想 氣泡排序,類似於水中冒泡,較大的數沉下去,較小的數慢慢冒起來,假設從小到大,即為較大的數慢慢往後排,較小的數慢慢往前排。直觀表達,每一趟遍歷,將乙個最大的數移到序列末尾。1.比較相鄰的元素,如果前乙個比後乙個大,交換之。2.第一趟排序第1個和第2個一對,比較與交換,隨後第2個和第3個一對比...