冒泡排序(Python实现)
2024-10-12 02:12:56
1. while版本--冒泡排序
def bubble_sort_while(a_list):
"""冒泡排序 while版本"""
num = len(a_list)
j = 0
while j < num-1:
i = 0
count = 0;
while i < num-1-j:
if a_list[i] > a_list[i+1]:
a_list[i],a_list[i+1] = a_list[i+1], a_list[i]
count += 1
i += 1
# 优化冒泡排序,对于有序列表
if count == 0:
break
j += 1
return a_list
2. for版本--冒泡排序
def bubble_sort_for(b_list):
"""冒泡排序 for版本"""
num = len(b_list)
for j in range(0, num-1):
count = 0
for i in range(0, num-1-j):
if b_list[i] > b_list[i+1]:
b_list[i],b_list[i+1] = b_list[i+1], b_list[i]
count += 1
# 优化冒泡排序,对于有序列表
if count == 0:
break
return b_list
3. 测试用例
if __name__ == '__main__':
a_list = [2,1,4,8,9,6]
print(bubble_sort_while(a_list))
b_list = [8,1,5,9,10,20]
print(bubble_sort_for(b_list))
4. 算法时间复杂度分析
- 最好时间复杂度:O(n)
- 最坏时间复杂度:O(n2)
- 稳定性:稳定
最新文章
- php curl 发送 json 数据
- 一个word合并项目的分布式架构设计
- 【UVA11294】Wedding (2-SAT)
- linux 脚本编写基础(一)
- H5中需要掌握的 ANIMATION 动画效果
- sql server根据日期或者月份查询聚合数据
- linux比较指令comm、diff、grep -Ff
- Struts2.3.16.3 基本9个jar包
- ACM-ICPC之路
- Nginx将项目配置在子目录
- iOS 之 设置横竖屏及ViewWillAppear及视图与导航控制器嵌套时的不同反应
- VS2015 安装nuget离线包nupkg文件
- [转]scrapy中的request.meta
- python 10大算法之一 LinearRegression 笔记
- Python Day 9
- Nginx加载模块
- QtQuick大坑笔记之Http的Get与Post操作(带cookie)
- Object.assign()解释整理
- C#语言
- Linux系统如何制作U盘启动盘更换系统