求冒泡排序详解。
代码,原理,以及时间复杂度等等。
需要比较详细的解释,最好是博文。找了很多篇,不是付费,就是不好
@静渊隐者
冒泡排序是一种简单的排序算法,它重复地遍历数列,
比较相邻的两个元素,如果它们的顺序错误就把它们交换。
最坏的时间复杂度为 $O(n^2)$,平均的时间复杂度为 $O(n^2)$。
--
代码实现类似下面
def bubble_sort(nums):
for i in range(len(nums) - 1):
for j in range(len(nums) - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
return nums
原理:
冒泡排序从数组的第一个元素开始,与相邻的元素比较,如果它比相邻元素大,就交换它们的位置。该过程在整个数组上继续重复,直到最大的元素被放到了数组的末尾。然后,忽略最后的元素,在剩下的数组中重复相同的过程。每一次该过程结束后,最大的元素都被移动到了数组的末尾。
--
参照博文,这个需要你花时间研究了
https://blog.csdn.net/u014532901/article/details/52628424
https://developer.aliyun.com/article/845386