冒泡排序是排序算法里的经典,它的基本思想是通过重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
假设我们有这样一个数列需要排序:
numbers = [64, 34, 25, 12, 22, 11, 90]
接下来这个过程就像气泡一样,较小(或较大,取决于你是要升序还是降序排序)的元素会逐渐“浮”到数列的顶端。
def bubble_sort(arr):
n = len(arr)
# 外层循环控制从头到尾的遍历次数
for i in range(n):
# 已经排序的部分就不再遍历了
for j in range(0, n-i-1):
# 交换如果当前的元素大于下一个元素
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
使用这个函数,我们就能对numbers
进行排序了:
bubble_sort(numbers)
print("排序后的数列:", numbers)
运行上面的代码,你会看到排序后的数列是这样的:
排序后的数列: [11, 12, 22, 25, 34, 64, 90]
冒泡排序虽然不是最高效的排序算法(它的时间复杂度是O(n^2),在处理大数据量时可能会比较慢),但它的思想非常直观,实现也很简单,是学习排序算法的好起点。
希望这对你有帮助。