排序算法之冒泡排序

冒泡排序:最简单的排序算法

时间复杂度:

      最优时间复杂度O(N),表示遍历一次没有发现任何可以交换的元素,排序结束

      最差时间复杂度O(N2)

稳定性:稳定

Python代码:

#bubble_sort:冒泡排序

def bubble_sort(alist):
    """冒泡排序"""
    n = len(alist)
    for j in range(n-1):
        count = 0  #记录内层循环是否进行交换,如果交换,那么加一
        for i in range(n-1-j):
            #内层循环:从头走到尾
            if alist[i] > alist[i + 1]:
                alist[i],alist[i + 1] = alist[i + 1],alist[i]
                count += 1
        if 0 == count:
            break
    """
    for j in range(n-1,0,-1):
        for i in range(j):
    """

if __name__ == "__main__":
    alist = [23,45,13,56,78,34,23]
    print(alist)
    bubble_sort(alist)
    print(alist)

输出结果:

排序算法之冒泡排序

相关推荐