氣泡排序法

2021-09-11 19:51:20 字數 743 閱讀 7980

在由一組整數組成的序列a[0,n-1]中,滿足a[i-1]<=a[i]的相鄰元素稱為ie順序的,否則稱為逆序。則,有序序列中每一對相鄰元素都是順序的,即,對任意1<=n都有a[i-1]<=a[i];反之,所有相鄰元素均順序的序列,也必然整體有序。

因此我們可以通過不斷改善區域性的有序性實現整體性的有序:從前向後依次檢查每一對相鄰元素,一旦發現逆序即交換二者的位置。對於成都為n的序列,共需做n-1比較和不超過n-1次交換,這一過程稱作一趟掃瞄交換。

排序過程中,所有元素朝各自最終位置不斷靠近的過程猶如氣泡在水中的沉浮,因此成為氣泡排序。實現**如下:

上述演算法按下圖程式執行後,產生順序序列:

演算法由內外兩層迴圈組成。內迴圈從前向後,依次比較各對相鄰元素,如有必要則將其交換。故在每一輪內迴圈中。需要掃瞄和比較n-1對元素,至多交換n-1對元素,所以每一輪內迴圈至多需要執行2(n-1)次基本操作。而外層迴圈至多需執行n-1輪,因此整個演算法需要執行的基本操作不會超過2(n-1)^2次,以此來度量該演算法的時間複雜度,有:

t(n)=o(2(n-1)^2)=o(n^2)

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...

排序 氣泡排序法

氣泡排序法,是最簡單的一種排序方法,從第乙個位置開始與相鄰位置比較,判斷是否需要交換位子。第一趟從第乙個位置開始,直到最後乙個位置,a n 1 確定最大 以公升序為例子 的數放在最後一位,a n 1 第二趟,繼續從第乙個位置開始,倒數第二位,a n 2 確定倒數第二大的數在倒數第二位a n 2 演算...

氣泡排序法

從小到大排序 int myarray new int 取長度最長的片語 冒泡法 for int j 1 jfor int i 0 i 如果 myarray i myarray i 1 則 myarray i 上浮一位 if myarray i myarray i 1 從大到小排序 int myarr...