> 文章列表 > Python冒泡排序的实现

Python冒泡排序的实现

Python冒泡排序的实现

时间复杂度

最坏时间复杂度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 arrayres = bubble_sort(array)  # 冒泡排序
print(res)

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9]