基本演算法 氣泡排序演算法

2022-09-07 15:27:18 字數 1282 閱讀 8347

冒泡演算法(bubble sort),是一種比較簡單的排序演算法。其排序邏輯是:重複訪問需要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小首字母從a到z)有誤,就會對元素進行位置交換,重複該過程直到沒有相鄰的元素需要進行交換。

演算法的名稱是因為經過該演算法排序後,越小的元素會經過交換會像泡泡一樣慢慢浮動到數列的頂端,故此得名冒泡演算法。

假設有陣列【1,6,3,5,2】,我們使用從小到大進行的方式進行氣泡排序。

第一趟排序:

1與6相比,1小於6,位置不變。【1,6,3,5,2】

6與3相比,6大於3,交換位置。【1,3,6,5,2】

6與5相比,6大於5,交換位置。【1,3,5,6,2】

6與2相比,6大於2,交換位置。【1,3,5,2,6】

第二趟排序:

1與3相比,1小於3,位置不變。【1,3,5,2,6】

3與5相比,3小於5,位置不變。【1,3,5,2,6】

5與2相比,5大於2,交換位置。【1,3,2,5,6】

第三趟排序:

1與3相比,1小於3,位置不變。【1,3,2,5,6】

3與2相比,3大於2,交換位置。【1,2,3,5,6】

下面我們來分析下氣泡排序的時間複雜度和空間複雜度。

時間複雜度:

空間複雜度:該演算法的所消耗的儲存空間。

package top.enjoyitlife.bubble;

import j**a.util.arrays;

/***

* @classname: bubblealgorithm

* @description: 氣泡排序演算法

* @author megaslark

*/public class bubblealgorithm ;

bubblealgorithm ba = new bubblealgorithm();

ba.bubblesort(nums);

system.out.println(arrays.tostring(nums));

} /****

* 氣泡排序 正序 有小到大

* @param nums

*/public void bubblesort(int nums)

int length=nums.length;

//陣列下標從0開始,比較趟數為陣列長度減1

for(int i=0;inums[j+1])

}if(flag)

}}}

以上就是氣泡排序的接受及**示例,希望對你有所幫助。

基本排序演算法 之一 氣泡排序

templatevoid bubblesort t arr,int len 未改進的氣泡排序,最好,最壞以及平均情況下的時間複雜度均為o n 2 排序過程可能在k k n 1 次外迴圈後已經達到有序狀態,但該演算法仍然會繼續比較相鄰元素,直到n 1次外迴圈結束。基於以上考慮,提出改進的氣泡排序演算法...

基本氣泡排序與演算法改進

氣泡排序基本思想,相鄰兩數一次比較,按照要求順序交換。array,待排陣列 n,陣列大小 int main int i printf 待排序陣列 n for i 0 i 8 i printf d array i bubblesort array,8 printf n氣泡排序後的陣列為 n for i...

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

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