1. 程式人生 > >python中氣泡排序和選擇排序及其區別

python中氣泡排序和選擇排序及其區別

氣泡排序:每次去相鄰的兩個元素比較,不合適就交換,依次向後

選擇排序:將第一個元素和後面的元素挨個輪流比較,如果按照從小到大排序,大的排序往後面

#排序函式
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)