學習筆記 資料結構與演算法 氣泡排序

2021-09-29 07:41:35 字數 1627 閱讀 9253

氣泡排序是一種基於比較的排序演算法,每次冒泡操作都會比較相鄰的兩個數,檢查是否滿足大小關係,如果不滿足就互換。一次冒泡操作至少讓乙個元素移動到家排序後所在的位置。重複n次就完成了排序。

還是圖比較直觀,以5、3、8、2、7、1資料為例,來畫個圖。

我的冒泡實現

這是我最原始的實現,氣泡排序

這樣過程進行6次就完成了冒泡的排序

這是我實現的氣泡排序的**:

public void

sort

(integer data)

for

(int

i = 0;

i < data.

length

; i++)

}system.

out.println(

"當前前第

:" + i + "次:

" + arrays.tostring(data))

;//

當一次冒泡沒有資料進行交換,說明排序已經完成

if (!breakflag) }}

我的冒泡還有很大的改進空間,再來乙個標準的氣泡排序的實現

老師的標準的氣泡排序:

這是老師的標準的氣泡排序演算法的一次冒泡操作

再來看看完整的乙個冒泡的過程:

標準的氣泡排序的演算法的實現:

public class

bubblesort<

t>

implements

sortinf<

t>

int

datalength = data.

length

;for

(int

i = 0;

i < datalength

; i++)

}system.

out.println(

"當前第

:" + i + "次:

" + arrays.tostring(data))

;//

如果一次交換則不存在資料交換時,則說明資料已經冒泡完成,無需再冒泡操作

if (!brakflag) }}

} 氣泡排序總結

演算法名稱

最好情況時間複雜度

最好情況的原始資料

最壞情況時間複雜度

最壞情況的原始資料

平均情況時間複雜度

是否基於比較

空間複雜度

是否穩定排序演算法

氣泡排序

o(n)

原始資料已經是有序,元需交換

o(原始資料倒序排列

o(是o(1)

原地排序演算法

是(在相等情況下不做交換)

資料結構與演算法 筆記 資料結構與演算法筆記 棧

以前學習的時候都沒怎麼好好的做過筆記,總是東記一點,西寫一點,甚至都不做筆記,導致後面找的時候找不到,最後還是求助搜尋引擎浪費掉很多時間。好腦筋不如個爛筆頭呀。這次又重新學習python的資料結構及演算法 中國mooc上的公開課 就好好做個筆記吧。棧是一種只能在一端進行插入和刪除的線性資料結構。一般...

資料結構與演算法學習筆記五 氣泡排序演算法

氣泡排序演算法原理 從未排序的序列的開頭開始,比較相鄰的兩個元素,將值大 小 放在右邊,每輪比較完成都會將最大 最小 放在最後一位,下一輪就只要從開頭比較到倒數第二個。以此類推,直到序列排序完畢。對於乙個有n個元素的序列,需要進行 n 1 輪迴圈比較.如下 ef bubble sort alist ...

資料結構與演算法 排序 氣泡排序

兩兩相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。氣泡排序基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此...