lowB三人组代码示例
- 冒泡排序:列表在内存重只存一份,所以不需要重复赋值
- import random
- from timewrap import * #时间装饰器
# 初级版本- @cal_time
- def bubble_sort(li):
- for i in range(len(li)-1): #循环的躺数为总的躺数-1,因为最后一步没必要走
- # i 表示趟数
- # 第 i 趟时: 无序区:(0,len(li) - i)
- for j in range(len(li) - i - 1): #循环i次之后就还有总长度-1-i次
- if li[j] > li[j+1]: #如果低j个数比j+1个数还要大,说明j在j+1的上边
- li[j], li[j+1] = li[j+1], li[j] #交换位置
# 优化版,和上边的基本一样,只是在他的基础上增加了一层判断,如果刚刚开始列表就是有序的则不需要进行排序- @cal_time
- def bubble_sort_2(li):
- for i in range(len(li)-1):
- # i 表示趟数
- # 第 i 趟时: 无序区:(0,len(li) - i)
- change = 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]
- change = True #排序成功返回True
- if not change: #如果没有change的值代表没有排序,
- return
- li = list(range(10000)) #随机产生10000个数
- # random.shuffle(li) #打乱后的结果
- # print(li)
- bubble_sort_2(li) #没有打乱排序,直接走if not change:
- print(li)
- #选择排序
- import random
- from timewrap import * #时间装饰器,用来判断函数执行的时间长度
- @cal_time
- def select_sort(li):
- for i in range(len(li)-1):
- # i 表示趟数,也表示无序区开始的位置
- min_loc = i # 最小数的位置 的到一个最小值
- for j in range(i+1, len(li)): #此时i就是最小值
- if li[j] < li[min_loc]: #如果li[j]<li[min_loc] 说明j就是最小值
- min_loc = j
- li[i], li[min_loc] = li[min_loc], li[i] #交换位置,最小值放在前边
- li = list(range(10000)) #随机产生1000个数字
- random.shuffle(li) #打乱
- print(li)
- select_sort(li) #调用函数,排序
- print(li)
- #插入排序
- import random
- from timewrap import *
- @cal_time
- def insert_sort(li):
- for i in range(1, len(li)):
- # i 表示无序区第一个数
- tmp = li[i] # 摸到的牌 随机去到一支歌
- j = i - 1 # j 指向有序区最后位置
- while li[j] > tmp and j >= 0: # 有序区最下的值
- #循环终止条件: 1. li[j] <= tmp; 2. j == -1
- li[j+1] = li[j]
- j -= 1
- li[j+1] = tmp
- li = list(range(10000))
- random.shuffle(li)
- print(li)
- insert_sort(li)
- print(li)
lowB三人组代码示例的更多相关文章
- 算法 排序lowB三人组 冒泡排序 选择排序 插入排序
参考博客:基于python的七种经典排序算法 [经典排序算法][集锦] 经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...
- 1、算法介绍,lowB三人组,快速排序
1.什么是算法 2.递归 # 一直递归,递归完成再打印 def func4(x): if x > 0: func4(x - 1) print(x) func4(5) 3.时间 复杂度 (1)引入 ...
- lowB三人组算法-冒泡排序-选择排序-插入排序
冒泡排序 时间复杂度:O(n2) 算法稳定 第一趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到最后位置得出一个第一大数 第二趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到倒数 ...
- 算法排序-lowB三人组
冒泡排序思路: 选择排序思路: 插入排序思路: 小结: 详细代码解释看下一篇
- 算法之LOWB三人组之插入排序
插入排序 思想:类似于抽扑克牌,共有8张扑克牌,手里默认有一张,桌面上有7张,我们每次从桌面上抽一张和手里的牌进行比较,如果比手里的牌大,则直接放到手里的牌的后面,如果比手里的牌小,则放到手里的牌的前 ...
- 算法之LOWB三人组之选择排序
选择排序 思想是在一个列表中每次循环一遍,拿到最小值,接着再从剩下的无序区中继续拿最小值,如此循环,直到结束. 时间复杂度为O(n^2) # 最简单的一个选择排序,循环一个列表,拿到最小值,添加到一个 ...
- 算法之LOWB三人组之冒泡排序
排序 冒泡排序(Bubble Sort)时间复杂度为O(n^2) 列表每两个相邻的数,如果前面比后面大,则交换这两个数 一趟排序完成后,则无序区减少一个数,有序区增加一个数. def bubble_s ...
- 排序算法lowb三人组-插入排序
def insert_sort(li): for i in range(1, len(li)): # i表示摸到的牌的下标 tmp = li[i] # 摸到的牌 j = i - 1 while j & ...
- 排序算法lowb三人组-选择排序
def get_min_pos(li): min_pos = 0 for i in range(1, len(li)): if li[i] < li[min_pos]: min_pos = i ...
随机推荐
- kb-07线段树--11--区间多重该值多种查询
/* lazy思想的运用,因为查询多种,如果全记录就太繁了,lazy就是如果该区间的每一个叶子的状态都相同就不用深入下去该值,只要暂时标记下,查询的时候也不用下去,直接计算: */ #include& ...
- mybatis学习(八)——resultMap之association&&collection解析
一.resultMap的使用 resultMap 也是定义返回值类型,返回值为用户自定义的类型,可用于解决JavaBean中的属性名和数据库中的列名不一致的情况 之前对于JavaBean中属性名和数据 ...
- poj3728The merchant
The merchant Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 4800 Accepted: 1666 Desc ...
- http请求代理proxy-ajax
今天把项目中的反向代理脚本程序抽成了一个插件,通过配置文件配置代理的http请求,这样使用起来比较方便,每位开发成员都可以用自己配置的代理调试代码.也可以用来直接做http代理,你甚至都不用Charl ...
- spring-boot项目热部署以及spring-devtools导致同类不能转换
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- Unity 过度光照贴图
背景:开关窗帘过程,让环境在亮和暗之间过度 事先烘培出亮.暗两张Lighting map.然后代码实现,窗帘开关由动作实现,而代码中通过动作执行进度来过度两张Lighting map void OnA ...
- CodeForces 232E.Quick Tortoise
John Doe has a field, which is a rectangular table of size n × m. We assume that the field rows are ...
- vue.js源码学习分享(三)
/** * Mix properties into target object.//把多个属性插入目标的对象 */ function extend (to, _from) { for (var key ...
- Vue.js实战:初识Vue.js
一.Vue.js是什么 简单小巧的核心,渐进式技术栈,足以应付任何规模的应用. 简单小巧指的是Vue.js 压缩后大小仅有17KB 所谓渐进式(Progressive)就是你一步一步,有阶段性地来使用 ...
- Gym 101917 E 简单计算几何,I 最大流
题目链接 https://codeforces.com/gym/101917 E 题意:给定一个多边形(n个点),然后逆时针旋转A度,然后对多边形进行规约,每个点的x规约到[0,w]范围内,y规约到[ ...