一、冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,一次比较两个元素,如果顺序错误就把它们交换过来。由于最大的元素经过交换会慢慢“浮”到数列的顶端,因此叫作冒泡排序。
冒泡排序的算法运作流程:
- 比较相邻的元素,如果第一个比第二个大,就交换他们两个。
- 对每组相邻元素做同样的操作,从开始第一对到结尾最后一对,最后的数会是最大的数。
- 对所有元素重复以上步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有数字需要比较
算法实现
# -*- coding: utf-8 -*-
def bubble_sort(array):
"""冒泡排序"""
length = len(array)
for j in range(length-1):
for i in range(0,length-1-j):
if array[i] > array[i+1]:
array[i], array[i+1] = array[i+1], array[i]
if __name__ == '__main__':
li = [1,4,6,2,7,5,99,76,34,32,23,26]
print(li)
bubble_sort(li)
print(li)
时间复杂度
- 最优时间复杂度:O(n) 遍历一次发现没有任何可以交换的元素,