python 改进的冒泡排序

小雷撸代码,恶补…
改进的冒泡排序:如果某次扫描没有遇到逆序,则说明序列已排好。

def bubble_sort(arry):
    for i in range(len(arry)-1):
        found = False
        for j in range(1, len(arry)-i):#range()取值含左不含右
            if arry[j-1] > arry[j]:
                arry[j - 1], arry[j] = arry[j], arry[j - 1]
                found = True#有逆序则置为Ture
        if not found:#如果一次扫描没有逆序,则说明此序列为正序,直接输出序列
            break#continue语句跳出本次循环,而break跳出整个for循环
    return arry

#a = [6,5,4,3,2,1]
a = [1,2,3,4,5,6]
a = bubble_sort(a)
print(a)

你可能感兴趣的:(算法)