冒泡排序

def bubbleSort(arr):
    # 这里用lastIndex记录每一趟最后发生交换的位置,依次作为对普通冒泡排序的改进
    length = len(arr)
    change = length - 1
    while change:
        lastIndex = 0          # lastIndex记录该趟最后移动元素的位置
        for i in range(change):
            if a[i] > a[i+1]:
                a[i+1], a[i] = a[i], a[i+1]
                lastIndex = i + 1
        change = lastIndex      # 当该趟没有移动元素,lastIndex的值为0,结束排序

这里比较巧妙的一点在于如果后面都没有换序,说明后面序列是正确的不需要调整,从最后一个换的地方考虑前面的排序就好,如果没换过就是0就跳出去了

你可能感兴趣的:(数据结构)