氣泡排序的演算法思路在於對無序表進行多趟比較交換,每趟包括了兩次兩兩相鄰比較,並將逆序的資料項交換位置,最終能將本趟的最大項就位,經過n-1趟比較,實現整表排序。圖表展示
效能改進
如果某趟比對沒有發生任何交換,說明列表已經排好序,可以提前結束演算法
def shortbubblesort(alist):
exchanges=true
passnum=len(alist)-1
while passnum >0 and exchanges:
exchanges=false
for i in range(passnum):
if alist[i]>alist[i+1]:
exchanges=true
temp=alist[i]
alist[i]=alist[i+1]
alist[i+1]=temp
passnum-=1
alist=[52,312,54,7,3,2,56,34,65]
shortbubblesort(alist)
print(alist)
氣泡排序及簡單改進方法
氣泡排序 一 畫圖理解 二 實現 include includevoid bubblesort int a,int num for int k 0 k num k printf n int main int num sizeof a sizeof a 0 bubblesort a,num syste...
氣泡排序 改進
氣泡排序是最簡單的排序演算法之一,在這裡首先要說明的是乙個要注意的地方。氣泡排序在最好情況下時間複雜度可以是o n 2 也可以是o n 下面看一種大家看得最多的寫法 public void bubblesort int arr 上面這樣寫最好情況下也是o n 2 那麼再來看下面這種寫法 public...
C 實現改進的氣泡排序
氣泡排序法 bubble sort 即起泡排序並不能改觀普通排序的時間複雜度,還是o n 2 氣泡排序法是從後往前兩兩比較,然後遍歷整個陣列,猶如魚吐水泡,故起此名。而普通排序法是遍歷整個陣列,然後每個元素和後面的所有元素進行比較,公升序則是後面小的和該元素互換位置,但這樣可能將很小的元素移到後面。...