LOW逼三人组(一)----冒泡算法
排序
1、冒泡排序
冒泡算法
- import random # 随机模块
- def bubble_sort(li): ###################################冒泡排序#####################################
- for i in range(len(li)-1): # 多少趟
- for j in range(len(li)-i-1): #一趟里多少次
- if li[j]>li[j+1]: # 升序排列 " < " 为降序排列
- li[j],li[j+1]=li[j+1],li[j] # 互换数
- data=list(range(1000)) # 1000个数
- random.shuffle(data) # 打乱这个序列
- bubble_sort(data) # 将打乱后的序列传送到冒泡算法函数
- print(data) # 打印排序后的序列
打印后的效果为:
``````````````````````
改进后的冒泡算法:
- import random
- def bubble_sort_1(li): # 上个算法的改进,用于极端情况,例如已经拍好的序列
- for i in range(len(li)-1):
- exchange=False
- for j in range(len(li)-i-1):
- if li[j]>li[j+1]:
- li[j],li[j+1]=li[j+1],li[j]
- exchange=True
- if not exchange: # 如果没有交换就直接退出
- break
- data=list(range(1000))
- random.shuffle(data)
- bubble_sort_1(data)
- print(data)
改进前和改进后的冒泡算法进行对比:
- import random # 随机模块
- import time
- def cal_time(func): # 装饰器 ,用来检测算法所执行的时间
- def wrapper(*args,**kwargs):
- t1=time.time()
- result=func(*args,**kwargs)
- t2=time.time()
- print("%s running time: %s secs." %(func.__name__,t2-t1))
- return result
- return wrapper
- @cal_time
- def bubble_sort(li): ###################################冒泡排序#####################################
- for i in range(len(li)-1): # 多少趟
- for j in range(len(li)-i-1): #一趟里多少次
- if li[j]>li[j+1]: # 升序排列 " < " 为降序排列
- li[j],li[j+1]=li[j+1],li[j] # 互换数
- # data=list(range(1000)) # 1000个数
- # random.shuffle(data) # 打乱这个序列
- # bubble_sort(data) # 将打乱后的序列传送到冒泡算法函数
- # print(data) # 打印排序后的序列
- @cal_time
- def bubble_sort_1(li): # 上个算法的改进,用于极端情况,例如已经拍好的序列
- for i in range(len(li)-1):
- exchange=False
- for j in range(len(li)-i-1):
- if li[j]>li[j+1]:
- li[j],li[j+1]=li[j+1],li[j]
- exchange=True
- if not exchange:
- break
- data=list(range(1000))
- random.shuffle(data)
- bubble_sort(data)
- bubble_sort_1(data)
- print(data)
打印后的效果为
``````````````````````
LOW逼三人组(一)----冒泡算法的更多相关文章
- LOW逼三人组(二)----选择排序算法
选择排序思路: 算法程序: def cal_time(func): # 装饰器 ,用来检测算法所执行的时间 def wrapper(*args,**kwargs): t1=time.time() re ...
- LOW逼三人组(三)----插入排序
插入排序思路 插入排序算法: import random # 随机模块 import time def cal_time(func): # 装饰器 ,用来检测算法所执行的时间 def wrapper( ...
- low逼三人组、nb二人组、归并、希尔排序----小结
- 排序算法之low B三人组
排序low B三人组 列表排序:将无序列表变成有充列表 应用场景:各种榜单,各种表格,给二分法排序使用,给其他算法使用 输入无序列表,输出有序列表(升序或降序) 排序low B三人组 1. 冒泡排序 ...
- 算法之排序Low B三人组
有序区:有的地方的数据已经完全变得有顺序,我们把这部分区域的数据成为有序区无序区:有的地方的数据依旧无序,我们把这部分数据成为无序区时间复杂度:用来估计算法运行时间的一个式子(单位)空间复杂度:用来评 ...
- 1、算法介绍,lowB三人组,快速排序
1.什么是算法 2.递归 # 一直递归,递归完成再打印 def func4(x): if x > 0: func4(x - 1) print(x) func4(5) 3.时间 复杂度 (1)引入 ...
- 算法 排序lowB三人组 冒泡排序 选择排序 插入排序
参考博客:基于python的七种经典排序算法 [经典排序算法][集锦] 经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...
- 算法排序-NB三人组
快速排序: 堆排序: 二叉树: 两种特殊二叉树: 二叉树的存储方式: 小结: 堆排序正题: 向下调整: 堆排序过程: 堆排序-内置模块: 扩展问题topk: 归并排序: 怎么使用: NB三人组小结
- python 内置函数,匿名函数,sorted,filter,map,递归,二分法,冒泡算法 eval
############################总结#################################1. lambda 匿名函数 语法——lambda 参数:返回值 __na ...
随机推荐
- 【leetcode】300.Longest Increasing Subsequence
Given an unsorted array of integers, find the length of longest increasing subsequence. For example, ...
- angular 数据内容有重复时不显示问题
<body ng-app="app"> <div ng-controller="myctl"> <ul> <li ng ...
- Spring Boot 初步小结
Spring Boot 是一种开发模式,不涉及任何新的技术 1.了解自动配置的原理 2.常用application.yml文件的配置项 3.Spring Boot 及 第三方提供的各种 starter ...
- Authenticator及AuthenticationStrategy
Authenticator的职责是验证用户帐号,是Shiro API中身份验证核心的入口点: 如果验证成功,将返回AuthenticationInfo 验证信息:此信息中包含了身份及凭证:如果验证失败 ...
- http2.0可行性研究
一.http2比http1有了更多新特性 1.使用了多路复用的技术,并发量支持比http1大几个数量级: 2.二进制分帧,改善网络延迟情况,提高传输速率: 3.支持header的数据压缩,数据体积变 ...
- 管理与技术未必不可兼得,一个20年IT老兵的码农生涯
作者|康德胜 我是一个喜欢写代码但几乎不太有机会写代码的CTO,也是一个看得懂财务报表.通过所有CFA(金融特许分析师)考试并获得FRM(金融风险经理)认证的拿到金融MBA的CTO,如果我有幸被称作码 ...
- 应用程序的日志通过rsyslog推送到syslog服务器
centos5系列系统自带为syslog1.4.1 centos6系列自带rsyslog版本为5.8.10 centos7系列自带rsyslog版本为7.4.7 目前最新版rsyslog为8.27.0 ...
- django 表单验证和字段验证
表单验证和字段验证 表单验证发生在数据验证之后.如果你需要自定义这个过程,有几个不同的地方可以修改,每个地方的目的不一样.表单处理过程中要运行三种类别的验证方法.它们通常在你调用表单的is_valid ...
- Linux之选取信息命令介绍与应用20170331
在介绍选取信息命令之前,说一下管道符“|”与tr命令,因为在使用多个命令一起的时候经常用到它. 一.利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入. ...
- 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016) F dfs序+树状数组
Performance ReviewEmployee performance reviews are a necessary evil in any company. In a performance ...