时间复杂度:
最坏时间复杂度O(n^2) 最优时间复杂度O(n):表遍历一次发现没有任何可以交换的元素,排序结束,这是最理想的 稳定性:稳定,(执行前后没有对数据没有变化,位置等)
原理和方法:
1,每次都是相邻的两个元素比较,如果前一个元素比相邻的后一个元素大就交换位置
2,这样一轮下来,最大的元素就放在了数组的最后面,然后再继续执行第1步,找出第二大的元素
代码实现:
def bubble_sort(array):
"""
冒泡排序:
每次都是相邻的两个元素比较,谁大就交换位置,
这样第一轮下来最大的元就放在了最后面,然后再继续下一轮比较找出第二大的元素
"""
n = len(array)
for i in range(n): # 有多少个数就循环多少次
for j in range(1, n-i):
if array[j-1] > array[j]: # 每次都是相邻的两个元素比较
array[j-1], array[j] = array[j], array[j-1]
return array
res = bubble_sort(array) # 冒泡排序
print(res)
输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]