排序算法之冒泡排序
冒泡排序:最简单的排序算法
时间复杂度:
最优时间复杂度O(N),表示遍历一次没有发现任何可以交换的元素,排序结束
最差时间复杂度O(N2)
稳定性:稳定
Python代码:
1 #bubble_sort:冒泡排序 2 3 def bubble_sort(alist): 4 """冒泡排序""" 5 n = len(alist) 6 for j in range(n-1): 7 count = 0 #记录内层循环是否进行交换,如果交换,那么加一 8 for i in range(n-1-j): 9 #内层循环:从头走到尾 10 if alist[i] > alist[i + 1]: 11 alist[i],alist[i + 1] = alist[i + 1],alist[i] 12 count += 1 13 if 0 == count: 14 break 15 """ 16 for j in range(n-1,0,-1): 17 for i in range(j): 18 """ 19 20 if __name__ == "__main__": 21 alist = [23,45,13,56,78,34,23] 22 print(alist) 23 bubble_sort(alist) 24 print(alist)
输出结果: