氣泡排序及改進 Python實現

2021-08-20 10:43:52 字數 982 閱讀 6371

氣泡排序的演算法思路在於對無序表進行多趟比較交換,每趟包括了兩次兩兩相鄰比較,並將逆序的資料項交換位置,最終能將本趟的最大項就位,經過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 氣泡排序法是從後往前兩兩比較,然後遍歷整個陣列,猶如魚吐水泡,故起此名。而普通排序法是遍歷整個陣列,然後每個元素和後面的所有元素進行比較,公升序則是後面小的和該元素互換位置,但這樣可能將很小的元素移到後面。...