Python_氣泡排序

Vera_y發表於2018-09-12

從小到大的排序:(最前面的數和一步步和後面的數比較,如果大於則交換,如果不大於則繼續迴圈)

方法1:

data = [65, 1, 45, 77, 3, 9, 43, 23, 7, 53, 213, 10]

for i in range(1, len(data)):
 # 因為j+1在列表最後加到了大於列表數的值,所以只要剛好迴圈到列表結束就可以了
    for j in range(len(data)-i):          # 減去列表迴圈的次數
        if data[j] > data[j+1]:
            tmp = data[j+1]
            data[j+1] = data[j]
            data[j] = tmp
print(data)    

方法2(和方法1相比,略過了最後兩次比較的迴圈):

for i in range(len(data)-2):           # 把最後兩次迴圈略過,最後兩次不用比較
    for j in range(len(data)-i-1):      # 讓j 不超出長度
        if data[j] > data[j + 1]:
            tmp = data[j+1]
            data[j+1] = data[j]
            data[j] = tmp
print(data)

結果:

[1, 3, 7, 9, 10, 23, 43, 45, 53, 65, 77, 213]

 

相關文章