python中氣泡排序和選擇排序及其區別
阿新 • • 發佈:2018-12-13
氣泡排序:每次去相鄰的兩個元素比較,不合適就交換,依次向後
選擇排序:將第一個元素和後面的元素挨個輪流比較,如果按照從小到大排序,大的排序往後面
#排序函式 def paixu(li): for j in range(1, len(li)): #j是外層迴圈的次數,所以j的範圍是range(1, len(li))=(1,5)即[1,2,3,4] for i in range(j, len(li)): #內層迴圈,i是比較元素,每次外迴圈一次確定一個數字,所以它的範圍是range(j, len(li)) if li[j] > li[i]: li[j], li[i] = li[i],li[j] return li li=[1,2,56,8,34] print(paixu(li)
氣泡排序 lt=[1,9,4,3,19,6,8,5] n=len(lt) for i in range(n-1): #外層迴圈控制圈數i,n個數迴圈n-1次 for j in range(n-1-i): #減去i是為了提高效率,一次確定一個數字,不需要重複再次比較 if lt[j]>lt[j+1]: #不合適,交換資料,此處是升序排序,若想降序需要將 > 改為 < lt[j],lt[j+1]=lt[j+1],lt[j] print(lt)