题目:
给你一个数组,通过冒泡排序倒序输出,并打印每一步排序步骤。
原理:
要实现冒泡排序算法,我们首先就要理解冒泡排序算法的本质和原理。顾名思义,冒泡排序就是像水中的泡泡一样,将数列中所有相邻的两个元素进行比较。每一次对数列进行遍历都可以找到现有数字中最大的数,当本次遍历完成后,该数将被冒泡到最后一位,最终在多次遍历后完成排序。
至于遍历次数,则取决于我们传入的数组的长度。
思路:
首先,我们比较第一对相邻的两个数字,也就是第一个数字和第二个数字,如果前一个数字大于后一个数字,就将两个数字交换;然后我们比较第二对数字,即第二个数字和第三个数字。
同理当第二个数字比第三个数字大时就交换两个数字,否则不进行操作。重复进行此操作,直到比较到第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自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!