Python初学者必备算法技能——冒泡排序

2023-06-1319:44:53数据结构与算法Comments846 views字数 1033阅读模式

冒泡排序

冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,并将它们按照升序或降序交换位置,从而实现排序的目的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

算法步骤:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

  1. 从列表的第一个元素开始,比较它与下一个元素的大小。
  2. 如果当前元素大于下一个元素,交换它们的位置。
  3. 继续向下比较相邻元素,直到达到列表末尾。
  4. 重复上述步骤,每次比较次数减少一次,直到所有元素都按照顺序排列。

示例

下面是用Python编写的冒泡排序算法示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

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作为输入,并按照升序排列列表元素。我们通过两个嵌套的循环实现冒泡排序的逻辑。在每次内部循环中,我们比较相邻元素并交换它们的位置,以确保最大的元素逐步移到列表的末尾。最终,我们得到了排序后的结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

可视化

现在让我们通过可视化展示冒泡排序算法的执行过程,以加深对算法的理解。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

初始状态:[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]

通过这个可视化示例,你可以看到冒泡排序算法是如何逐步将最大的元素移到列表的末尾的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

下集预告

这就是冒泡排序算法的简单介绍和示例代码。如果你有任何问题,请随时留言。接下来,我们可以继续学习快速排序算法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/46935.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/46935.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定