选择排序思路: 算法程序: 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 sel…
插入排序思路 插入排序算法: 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 resul…
排序 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]: # 升序排列 " < " 为降序排…
参考博客:基于python的七种经典排序算法     常用排序算法总结(一) 序前传 - 树与二叉树 树是一种很常见的非线性的数据结构,称为树形结构,简称树.所谓数据结构就是一组数据的集合连同它们的储存关系和对它们的操作方法.树形结构就像自然界的一颗树的构造一样,有一个根和若干个树枝和树叶.根或主干是第一层的,从主干长出的分枝是第二层的,一层一层直到最后,末端的没有分支的结点叫做叶子,所以树形结构是一个层次结构.在<数据结构>中,则用人类的血统关系来命名,一个结点的分枝叫做该结点的"…
归并排序的思路: 归并算法程序(配合下图进行思考): def merge(li,low,mid,high): i = low j = mid + 1 ltmp=[] while i <= mid and j <= high: # 左边有数 且 右边也有数 if li[i] < li[j]: # 左边小于右边 ltmp.append(li[i]) # 把左边的数 添加到 ltmp 这个列表中 i += 1 # 右移一位 else: ltmp.append(li[j]) # 右边小于左边 j…
堆排序前传--树与二叉树简介 特殊且常用的树--二叉树  两种特殊的二叉树 二叉树的存储方式 二叉树小结 堆排序 堆这个玩意....... 堆排序过程: 构造堆: 堆排序的算法程序(程序需配合着下图理解): def sift(data,low,high): # 调整函数 i = low # 树的根 也就是父亲 ,这里只领导 j = 2 * i + 1 # 根的左孩子 也就是 儿子 ,这里指小领导 tmp = data[i] # 把根 取出来 做调整 , 在这里 领导 while j <= hig…
NB三人组之 快速排序 def partition(li, left, right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: right -= 1 li[left] = li[right] while left < right and li[left] <= tmp: left += 1 li[right] = li[left] li[left] = tmp #…
排序low B三人组 列表排序:将无序列表变成有充列表 应用场景:各种榜单,各种表格,给二分法排序使用,给其他算法使用 输入无序列表,输出有序列表(升序或降序) 排序low B三人组 1. 冒泡排序 首先,列表每两个相邻的数做比较,如果前边的数比后边的数大,那么交换这两个数 def bubble_sort(l1): for i in range(len(l1)-1): for j in range(len(l1)-i-1): if l1[j] > l1[j+1]: l1[j],l1[j+1]=l…
Yuanfang is puzzled with the question below: There are n integers, a 1, a 2, -, a n. The initial values of them are 0. There are four kinds of operations. Operation 1: Add c to each number between a x and a y inclusive. In other words, do transformat…