-
就說這個想法,如果 5 個數字 7 2 3 4 9 先進行第一次和第二次比較,如果前者大,則交換,小不變,比如 7 和 2 交換再取第二次和第三次比較,7 和 3 比較,7 大,3 次交換,第三個位置是 7, 然後第三個位置和四個比較,7大於4,交換,第四個位置是7,7小於9,不交換,順序是2 3 4 7 9第二輪,2和3比較位置保持不變,3和4比較位置保持不變,4和7比較位置保持不變, 在回合結束時,在 2 和 3 比較中的位置保持不變,。。我知道比賽的結束。
-
方法二:記錄掉期倉位,下次行程可以省略不必要的比較(如果接下來的幾個元素已經排序好了,第二次行程就不需要比較這些元素了);
方法三:兩個方向冒泡,正向求最大值(從最小元素交換位置開始比較,找到最大元素並記錄交換位置),反向求最小值(從最大元素交換位置開始比較,找到最小的元素並記錄交換位)。
氣泡排序是比較的基本排序演算法之一,其思路是將相鄰的元素成對比較,較大的數字下沉,較小的數字上公升,這樣經過比較後,最大(小)值就會排列在一端,整個過程就像泡沫上公升一樣,所以叫氣泡排序。
-
氣泡排序是最簡單的排序方法,並且易於理解。 雖然它的計算步驟比較多,而且不是最快的,但它是最基本的,初學者必須掌握。
氣泡排序的原理是:從左到右,比較相鄰的元素。 每一輪比較都會找到序列中最大或最小的乙個。 此數字將從序列的最右側彈出。
例如,在第一輪比較之後,所有數字中最大的數字將浮動到最右邊; 在第二輪比較之後,所有數字中第二高的數字將浮動到倒數第二的位置......就這樣,一輪又一輪地進行對比,最後實現了從小到大的順序。
例如,按從小到大的順序對以下序列進行排序:
第 1 輪:比較時,每輪中的第 n 個比較是新序列中第 n 個元素和第 n+1 個元素的比較(假設 n 從 1 開始)。
第 2 輪: 第 3 輪:
至此,第三輪結束。 第三輪的結果是找到序列中的第三大數字,並浮動到最右邊的第三個位置。
第 4 輪:從這個例子中也可以得出結論,如果有n個資料,那麼只需要比較n個1輪,因為每一輪排序,可以找到最大的數字,所以每一輪比較是n-1-i次(i是右邊已經確定的數字數,即 已執行的輪數)。
在下面編寫乙個程式:
輸出為:0 1 2 3 4 5 6 7 8 9
-
鼓泡法的順序如下:
氣泡排序通過反覆訪問要排序的元素列,依次比較兩個相鄰元素,如果順序(例如從大到小,第乙個字母從z到a的保險槓)錯誤,則交換它們。 重複訪問元素的工作,直到沒有要交換的鄰居,即元素列已排序。
該演算法的名稱來源於這樣乙個事實,即較小的元素通過交換緩慢地“漂浮”到序列的頂部(上公升或下降),就像碳酸飲料中的二氧化碳氣泡最終上公升到頂部一樣,因此得名“冒泡分選”。
冒泡是將小元素放在前面或將大元素放在後面的過程。 比較是兩個相鄰元素的比較,而交換也發生在這兩個笑的純粹元素之間。
因此,如果這兩個元素相等,它們將不再交換; 如果兩個相等的元素不相鄰,那麼即使兩者在前面的成對交換中相鄰,此時也不會交換,因此相同元素的順序不會改變,因此氣泡排序是一種穩定的排序演算法。
演算法原理:
1. 比較相鄰元素。 如果第乙個比第二個大,請交換它們。 對每對相鄰元素執行相同的工作,從第一對開始,到最後一對結束。 此時,最後乙個元素應該是最大的。
2. 對除最後乙個元素之外的所有元素重複上述步驟。 每次重複上述步驟,使元素越來越少,直到沒有數字對進行比較。
氣泡排序的中心思想是從無序序列的頭部開始,成對比較,根據大小交換位置,最後將最大(小)資料元素交換到無序佇列的末尾,從而成為有序序列的一部分; 下次繼續該過程,直到所有資料元素都排序完畢。 該演算法的核心是選擇剩餘無序序列中最大(最小)的資料元素,並通過一次成對比較位置將其放在佇列的末尾。 >>>More