2 排序演算法 氣泡排序

2021-10-10 21:21:41 字數 1051 閱讀 9943

氣泡排序(bubble sort)也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端。

作為最簡單的排序演算法之一,氣泡排序給我的感覺就像 abandon 在單詞書裡出現的感覺一樣,每次都在第一頁第一位,所以最熟悉。氣泡排序還有一種優化演算法,就是立乙個 flag,當在一趟序列遍歷中元素沒有發生交換,則證明該序列已經有序。但這種改進對於提公升效能來說並沒有什麼太大作用。

1. 演算法步驟

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個,對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數,針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

2. **演示

3. 最快場景

當輸入的資料已經是正序時(都已經是正序了,我還要你氣泡排序有何用啊)。

4. 最慢場景

當輸入的資料是反序時(寫乙個 for 迴圈反序輸出資料不就行了,幹嘛要用你氣泡排序呢)。

5.**實現

package com.data.algorithm;

/** * 排序型別: 氣泡排序

* * */

public class bubblesortdemo ;

integer ins2 = bubblesort(ins);

for(int in: ins2) }

public static integer bubblesort(integer nums)}}

return nums;

}}

演算法(2)排序之氣泡排序

氣泡排序核心思路 每乙個元素 j 和其後面乙個元素 j 1 比較,如果前者 j 大則交換,無論交換與否,讓後面元素 j 1 何其下乙個元素 j 2 接著進行比較 看圖說明,不想寫流程了 設定指標 i,j i 從角標 0 開始,到 n 1 結束,j 每次從 1 開始,到 n i 1 結束 其實 i 表...

001 排序演算法 氣泡排序

對於基礎的說明可以參看 001 資料結構與演算法基本概念 002 資料結構之演算法的時間複雜度和空間複雜度 氣泡排序 bubble sort 又被稱為氣泡排序或泡沫排序。它是一種較簡單的排序演算法。規則 每次比較兩個相鄰的元素,將較大的元素交換至右端。排序方法 時間複雜度 平均 時間複雜度 最壞 時...

03 排序 氣泡排序

基本原理 顧名思義就是整個過程向氣泡一樣往上公升,單向氣泡排序的基本原理就是 對於給定的n個資料,從第乙個資料開始一次對相鄰的兩個記錄進行比較,當前面的記錄大於後面的記錄時,交換位置,進行一輪比較和換位後,n個記錄中最大的那個被排在最後,即第n位。然後對前面n 1個記錄進行第二次比較,重複該過程。實...