冒泡排序
冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,并将它们按照升序或降序交换位置,从而实现排序的目的。
算法步骤:
- 从列表的第一个元素开始,比较它与下一个元素的大小。
- 如果当前元素大于下一个元素,交换它们的位置。
- 继续向下比较相邻元素,直到达到列表末尾。
- 重复上述步骤,每次比较次数减少一次,直到所有元素都按照顺序排列。
示例
下面是用Python编写的冒泡排序算法示例:
代码语言:javascript复制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]
# 测试示例
nums = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(nums)
print("排序结果:", nums)
在这个示例中,我们定义了一个函数bubble_sort
,它接受一个列表arr
作为输入,并按照升序排列列表元素。我们通过两个嵌套的循环实现冒泡排序的逻辑。在每次内部循环中,我们比较相邻元素并交换它们的位置,以确保最大的元素逐步移到列表的末尾。最终,我们得到了排序后的结果。
可视化
代码语言:javascript复制现在让我们通过可视化展示冒泡排序算法的执行过程,以加深对算法的理解。
初始状态:[64, 34, 25, 12, 22, 11, 90]
第一轮遍历:[34, 25, 12, 22, 11, 64, 90]
第二轮遍历:[25, 12, 22, 11, 34, 64, 90]
第三轮遍历:[12, 22, 11, 25, 34, 64, 90]
第四轮遍历:[12, 11, 22, 25, 34, 64, 90]
第五轮遍历:[11, 12, 22, 25, 34, 64, 90]
排序结果:[11, 12, 22, 25, 34, 64, 90]
通过这个可视化示例,你可以看到冒泡排序算法是如何逐步将最大的元素移到列表的末尾的。
下集预告
这就是冒泡排序算法的简单介绍和示例代码。如果你有任何问题,请随时留言。接下来,我们可以继续学习快速排序算法。