python中的冒泡排序
2021/12/1 22:12:37
本文主要是介绍python中的冒泡排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
根据图示已经找到了一规律
有一个数值是递增的,有一个数值是递减的。需要迭代遍历实现递增和递减
li = [55, 22, 11, 33, 44] # 这个列表的大小也对应着准备好的图 # 递增的数值正好是列表长度的length减一 (len(a) - 1) for i in range(len(li) - 1): # 递减的数可以让length减一再减i(i是从0开始的) for j in range(len(li) - 1 - i): # 前后比较,如果大于符号成立,那就进行交换。否则就什么也不做 if li[j] > li[j + 1]: # 交换变量 li[j], li[j + 1] = li[j + 1], li[j] print(li) # 冒泡排序已经实现了
其实图示中可以发现一个问题,第二次就已经排好了。第三次和第四次空比较,没有意义
可以优化一下代码
li = [55, 22, 11, 33, 44] count = 0 for i in range(len(li) - 1): count += 1 # 在每次比较之前,设置一个变量 flag = True for j in range(len(li) - 1 - i): if li[j] > li[j + 1]: li[j], li[j + 1] = li[j + 1], li[j] # 如果发生了交换,那就把变量设置成False flag = False # 在外层循环(每一个新的元素开始比较之前)判断,变量flag是否变更。 # 如果变更成Flase就意味着发生了交换。 # 如果没有发生交换,就意味着已经排好了,跳出循环 if flag: break print(li) print(count)
这篇关于python中的冒泡排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础