代码
# 冒泡排序
def bubble_sort(nums: list) -> None:
for index1 in range(len(nums) - 1):
for index2 in range(len(nums) - 1 - index1):
if nums[index2+1] < nums[index2]:
nums[index2], nums[index2+1] = nums[index2+1], nums[index2]
冒泡是个比较简单的一个排序算法,外层循环来控制每次内层循环遍历的次数,内层循环每次会选一个最大的值放在数组的最后一位,下一次循环由于外层循环的index增加,因此内层循环不会再访问最后一个数组,因此内层循环会不断把当前循环比较出来的最大值放在数组尾部,这样最后数组为降序
图解
自己画的不好看 直接看这个网址的动画更直观
https://visualgo.net/en/sorting
复杂度
两个大循环无疑是O(n^2)