冒泡排序(Python实现)
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)
- 稳定性:稳定
冒泡排序(Python实现)的更多相关文章
- 冒泡排序-Python与PHP实现版
Python实现 import random a=[random.randint(1,999) for x in range(0,33)] # 冒泡排序,python中数组是按引用传递的,会直接在原数 ...
- 冒泡排序——Python实现
冒泡排序Python实现 # -*- coding: utf-8 -*- # @Time : 2019/10/28 19:41 # @Author : yuzhou_1shu # @Email : y ...
- 冒泡排序——Python实现
一.排序思想 排序思想参见:https://www.cnblogs.com/luomeng/p/10161794.html 二.python实现 def bubble_sort(nums): &quo ...
- 冒泡排序-python
题目: 如果一个list是一组打乱的数字 list1=[3,2,1,9,10,78,6] 如何用python将这组打乱的数字进行冒泡排序? 题解: def sort(nums): for i in r ...
- 选择排序、插入排序、冒泡排序python实现
选择排序的时间复杂度为O(n^2),是不稳定的排序 冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序 插入排序的时间复杂度最好情况下为O(n) ...
- 数据结构_冒泡排序(python)
1.核心思想:比较两个元素,如果前一个比后一个大则进行交换,经过对每个元素的比较,最后最大的元素被放在在最后位置 操作方法: 外层正常for循环遍历,到n-1位,内层for循环相邻两个数比较大小,小数 ...
- python算法与数据结构-冒泡排序算法(32)
一.冒泡排序介绍 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要 ...
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- python学习_循环结构 and 类型判断
# 循环结构 ### 循环结构(while) - 格式 ```python while 表达式: 语句块 ``` > 执行流程:当程序执行到while语句时,首先判断表达式的真假.若表达式的值为 ...
- python编程练习
python练习之冒泡排序: python代码: #coding=utf-8 if __name__=="__main__": arr=[3,2,1,7,11,4,5,8] pri ...
随机推荐
- 图表统计FusionCharts
工作中用的图形统计,用的FusionCharts,发现Chenssy总结了很详细了,特此记录一下.tks Chenssy. tks: http://www.cnblogs.com/chenssy/ar ...
- 我所知道的几种display:table-cell的应用
.outer span { display: table-cell; } 一.display:table-cell属性简述 display:table-cell属性指让标签元素以表格单元格的形式呈现 ...
- PHP 设置分页 可以直接引用 最下面有自己引用的方法和注释
1 <?php 2 /** 3 file: page.class.php 4 完美分页类 Page 5 */ 6 class Page { 7 private $total; //数据表中总记录 ...
- ie9 form submit 请求参数问题替代办法
//隐藏表单 <input id="hdPeriod" name="period" type="hidden" value=" ...
- shell监控之列出1小时内cpu占用最多的10个进程
脚本内容如下: -------------------------------------------------------------------------------------------- ...
- Linux下TCP/socket编程
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- 最全最详细:ubuntu16.04下linux内核编译以及设备驱动程序的编写(针对新手而写)
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- [administrative][archlinux][clonezilla][disk cloning] 一块 windows 10 硬盘的备份
https://wiki.archlinux.org/index.php/disk_cloning https://wiki.archlinux.org/index.php/full_system_b ...
- idea导出可执行jar包
一. 在菜单中选择 File->project structure. 二. 在弹出的窗口中左侧选中"Artifacts",点击"+"选择jar,然后选择& ...
- java web filter读取classpath配置文件内容
以下demo,从类路径classpath中获取venus.properties(本项目中用到的文件),思路是在初始化的时候读取,然后放在局部变量里面. package club.codeapes.we ...