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語言實現的,及其兩種優化方式。第一種優化方式是設定乙個標記位來標記是否發生了交換,如果沒有發生交換就提前結束 第二種優化方式是記錄最後發生交換...