001 排序演算法 氣泡排序

2022-02-12 04:34:14 字數 1045 閱讀 3549

對於基礎的說明可以參看

001-資料結構與演算法基本概念

002-資料結構之演算法的時間複雜度和空間複雜度

氣泡排序(bubble sort),又被稱為氣泡排序或泡沫排序。它是一種較簡單的排序演算法。

規則:每次比較兩個相鄰的元素,將較大的元素交換至右端。

排序方法

時間複雜度(平均)

時間複雜度 (最壞)

時間複雜度(最好)

空間複雜度

穩定性氣泡排序

o(n^2)

o(n^2)

o(n)

o(1)

穩定氣泡排序的時間複雜度是o(n2)。

假設被排序的數列中有n個數。遍歷一趟的時間複雜度是o(n),需要遍歷多少次呢?n-1次!因此,氣泡排序的時間複雜度是o(n2)。

氣泡排序是穩定的演算法,它滿足穩定演算法的定義。

演算法穩定性 -- 假設在數列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;並且排序之後,a[i]仍然在a[j]前面。則這個排序演算法是穩定的!

3和44比較,3<44位置不變;44和38比較,44>38交換,

/*

* 氣泡排序 下沉排序

*/public

static

void bubblesort1(int

a) }}}

優化方案

增加乙個標誌位,有序就退出好了

/*

* 氣泡排序(改進版) 下沉排序

*/public

static

void bubblesort2(int

a) }

if (!flag)

break; //

若沒發生交換,則說明數列已有序。

} }

2 排序演算法 氣泡排序

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

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

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

03 排序 氣泡排序

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