氣泡排序 氣泡排序法

2021-10-16 04:22:04 字數 1581 閱讀 9830

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。

然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待排序表的長度,如果在某次掃瞄過程中,沒有發現交換,則排序結束。

氣泡排序演算法原理

1、從後往前依次比較相鄰的元素。若是要按照公升序排序,則後面的元素比前面的小,就交換這2個元素;降序則相反。

2、對每一對相鄰元素作同樣的工作,從第一對到最後一對。進行一輪比較交換下來,最後的元素就會是最小(或最大)的數了,這個數就不用參與後面的比較操作了。

3、針對所有的元素重複以上的步驟。

4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

為了盡量縮短待排序表的長度,避免下一次掃瞄中可能出現的不必要的比較,在每次掃瞄過程中,一方面要記錄進行元素交換的次數,另一方面要記住在本次掃瞄中的最後一次進行交換的位置。在這個位置以後沒有發生過交換,則說明在這個位置以後的元素實際上已經排好次序。

總的來說,冒泡法基本思想是重複的進行整個陣列的排序,一次比較兩個元素(兩兩排序),如果它們順序不符合就交換,重複這樣直到數列沒有再需要交換的數為止(結束條件)。因為它就好像氣泡一樣,輕的氣泡會往上漂浮,在不斷漂浮的過程中,發生了兩兩交換過程,所以叫氣泡排序。

例項說明:

輸入:待排序表l(1:n)。

輸出:有序表l(1:n)。

在這個演算法中,k代表在每次掃瞄過程中需要進行經較的專案數;當f>0時,表示還需要進行掃瞄比較,並且,它的數值表示上一次掃瞄中發生最後一次交換的位置。由上例可知,在最壞情況下,氣泡排序法需要進行n-1遍掃瞄,共要作[n(n-1)]/2次比較和元素的交換。但這個工作量並不是必需的,一般情況下要小於這個工作量。

排序 氣泡排序法

氣泡排序法,是最簡單的一種排序方法,從第乙個位置開始與相鄰位置比較,判斷是否需要交換位子。第一趟從第乙個位置開始,直到最後乙個位置,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...

氣泡排序法

氣泡排序法 氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。重複此過程,直至排好序 public class bubblesort boolean flags false 對排序進行標記,初始時是false 在下面給出的演算法中,引入乙個布林量fla...