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)
  • 稳定性:稳定

最新文章

  1. php curl 发送 json 数据
  2. 一个word合并项目的分布式架构设计
  3. 【UVA11294】Wedding (2-SAT)
  4. linux 脚本编写基础(一)
  5. H5中需要掌握的 ANIMATION 动画效果
  6. sql server根据日期或者月份查询聚合数据
  7. linux比较指令comm、diff、grep -Ff
  8. Struts2.3.16.3 基本9个jar包
  9. ACM-ICPC之路
  10. Nginx将项目配置在子目录
  11. iOS 之 设置横竖屏及ViewWillAppear及视图与导航控制器嵌套时的不同反应
  12. VS2015 安装nuget离线包nupkg文件
  13. [转]scrapy中的request.meta
  14. python 10大算法之一 LinearRegression 笔记
  15. Python Day 9
  16. Nginx加载模块
  17. QtQuick大坑笔记之Http的Get与Post操作(带cookie)
  18. Object.assign()解释整理
  19. C#语言
  20. Linux系统如何制作U盘启动盘更换系统

热门文章

  1. python-Levenshtein几个计算字串相似度的函数解析
  2. Centos7下使用mail发送邮件配置
  3. 常用Common集合
  4. ORM 简介 单表操作
  5. Python:多线程
  6. [skill][msgpack] 初试msgpack库以及基本使用
  7. [skill][git] git 常用操作记录
  8. Web发展简史
  9. 基于Gogs+Drone搭建的私有CI/CD平台
  10. Java+Selenium 如何参数化验证Table表格数据