氣泡排序演算法

2022-07-07 09:06:09 字數 735 閱讀 1169

氣泡排序和快速排序都是屬於交換排序的一種。所謂交換,就是根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。

氣泡排序演算法的基本思想就是:在待排序表中,從後往前(或從前往後)兩兩比較相鄰元素的值,若逆序則交換它們,知道序列比較完,這就是一趟冒泡。此時這個元素就在它的最終位置了,下一趟冒泡時,其不再參與。每趟冒泡的結果都是把序列中的乙個元素放到了序列的最終位置。

氣泡排序中,我們使用了常數個輔助單元,因此空間複雜度為 o(1);

當序列有序時,顯然我們只需要比較 n - 1 次,交換 0 次,從而最好的情況下的時間複雜度是 o(n)。

如果序列逆序,則需進行 n - 1 趟冒泡操作,第 i 趟時要進行 n - i 次關鍵字的比較,而每一次比較都必須移動元素3次來交換元素位置。所以:

比較次數 = n(n-1)/2 ==> 從i=1到n-1的對(n-i)的求和所得

移動次數 = 3n(n-1)/2 ==> 從i-1到n-1的對3(n-i)的求和所得

所以最壞情況下時間複雜度為 o(n^2),故平均時間複雜度為 o(n^2)。

氣泡排序的**如下:

/**

* 從小到大排序

* @param nums

* @return

*/function bubblesort(nums)

}if (!flag)

} return nums;

}

小結:

氣泡排序演算法 C 氣泡排序演算法排序詳解

氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

排序演算法 氣泡排序

一.氣泡排序的過程 公升值排序 1.將第乙個記錄的關鍵字與第二個記錄的關鍵字進行比較,若key 1 key 2 則交換。然後比較第二個與第三個,依此類推,直到第n 1個與第n個比較為止,第一趟排序完後,記錄最大的關鍵字會被排在最後面。2.將記錄的前n 1個關鍵字進行第二趟比較交換,直到前n 1個中最...