冒泡排序:元素两两比较,如果前面的元素大于后面的元素,就交换两个元素的位置
这里我们又可以将冒泡排序分为两种,一种是由前往后的冒泡,一种是有后往前的冒泡,两种方法区别不是很大,大家可以都了解一下。
由前往后实现冒泡排序,代码如下:
# 冒泡排序:元素两两比较,如果前面的元素大于后面的元素,就交换两个元素的位置
import random
# 随机获取1~99之间的20个随机数,作为待排序序列
nums = [random.randrange(1, 100) for i in range(20)]
print('排序前',nums)
for i in range(1, len(nums)):
# 如果前面元素大于后面元素,交换两个元素位置,不然就继续往下比较,直到遍历完后面元素
for j in range(len(nums) - i):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
print('排序后',nums)
运行结果:
这里的代码,有一些小瑕疵,在处理接近有序的序列时,依然要全部遍ÿ