氣泡排序的兩種優化筆記

2021-09-13 01:23:47 字數 757 閱讀 7319

def bubble_sort(list):

pos = len(list)-1

#優化1,將每一次迴圈終點定位上一次交換的地點

#這樣不用對那些後面已經排好順序的數再進行排序

for i in range(len(list)-1):

flag=0

#優化二,如果提前完成排序便可退出

for j in range(pos):

if(list[j]>list[j+1]):

list[j],list[j+1]=list[j+1],list[j]

flag=1

where=j

pos=where

print(list)

if(flag==0):

return

a=[2,3,1,5,6,123,12,4,324,23]

bubble_sort(a)

print(a)

結果:

[2, 1, 3, 5, 6, 12, 4, 123, 23, 324]

[1, 2, 3, 5, 6, 4, 12, 23, 123, 324]

[1, 2, 3, 5, 4, 6, 12, 23, 123, 324]

[1, 2, 3, 4, 5, 6, 12, 23, 123, 324]

[1, 2, 3, 4, 5, 6, 12, 23, 123, 324]

[1, 2, 3, 4, 5, 6, 12, 23, 123, 324]

氣泡排序演算法的兩種優化

氣泡排序 三種實現,兩種優化 首先,我們先介紹bubblesort 就是氣泡排序,氣泡排序大家應該最熟悉不過了 氣泡排序演算法的運作如下 從後往前 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最...

兩種氣泡排序

泡泡往前冒 for int i 1 i score.length i 例如 for int i 1 i score.length i system.out.print 第 i 次排序的結果 for int j 0 j score.length j system.out.println for int...

氣泡排序及兩種優化方式

定義 每一趟依次比較相鄰的兩個數,將小數放在前面,大數放在後面,直到一趟只剩下乙個元素。時間複雜度 o n 2 氣泡排序是最常用的小型資料排序方式,下面是用c語言實現的,及其兩種優化方式。第一種優化方式是設定乙個標記位來標記是否發生了交換,如果沒有發生交換就提前結束 第二種優化方式是記錄最後發生交換...