Python冒泡排序深度剖析

2644 篇文章 26 订阅
2304 篇文章 14 订阅

题目:

给你一个数组,通过冒泡排序倒序输出,并打印每一步排序步骤。

原理:

要实现冒泡排序算法,我们首先就要理解冒泡排序算法的本质和原理。顾名思义,冒泡排序就是像水中的泡泡一样,将数列中所有相邻的两个元素进行比较。每一次对数列进行遍历都可以找到现有数字中最大的数,当本次遍历完成后,该数将被冒泡到最后一位,最终在多次遍历后完成排序。

至于遍历次数,则取决于我们传入的数组的长度。

思路:

首先,我们比较第一对相邻的两个数字,也就是第一个数字和第二个数字,如果前一个数字大于后一个数字,就将两个数字交换;然后我们比较第二对数字,即第二个数字和第三个数字。

同理当第二个数字比第三个数字大时就交换两个数字,否则不进行操作。重复进行此操作,直到比较到第n个数字和第n-1个数字,当本步骤交换完毕后,第n个数字(即最后一个数字)就是本数列中的最大数。
在这里插入图片描述
接下来,我们通过代码来实现。

代码:

# Author : Tracy微信:810295842
# coding : utf-8
def bub_sort(alist):
    n = len(alist)
    print("冒泡排序前 :{}".format(alist))
    for i in range(n - 1):
        for j in range(n - 1 - i):
            if alist[j] < alist[j + 1]:
                alist[j], alist[j + 1] = alist[j + 1], alist[j]
        print("第{}次排序后:{}".format(i+1, alist))


if __name__ == '__main__':
    a = input("请输入一组数组,用空格分隔:").split(" ")
    for i in range(len(a)):
        a[i] = int(a[i])
    bub_sort(a)
    print("加微信进入招聘+技术交流群:746506216")

执行后结果:

在这里插入图片描述

在这里插入图片描述

现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值