#排序
import random
#简单选择排序
def sort1(lst):
for i in range(len(lst)):
minIndex = i
for j in range(i+1,len(lst)):
if lst[j] < lst[minIndex]:
minIndex = j
if minIndex != 1:
lst[minIndex],lst[i] = lst[i],lst[minIndex]
return lst
#冒泡法
def sort2(lst):
for i in range(len(lst)):
flag = True
for j in range(len(lst)-1-i):
if lst[j] > lst[j+1]:
lst[j],lst[j+1] = lst[j+1],lst[j]
flag = False
if flag: break
return lst
#插入排序
def sort3(lst):
lst = [0] + lst #sentry,*origin = nums 保留原数据origin,*收集后为数组
for i in range(1,len(lst)):
lst[0] = lst[i]
j = i - 1
while lst[j] > lst[0]:
lst[j+1] = lst[j]
j -= 1
lst[j+1] = lst[0]
return lst[1:]
for i in range(1,len(nums)): #插入排序,不在开头加哨兵位
tmp = nums[i]
j = i - 1
while nums[j] > tmp:
nums[j+1] = nums[j]
j -= 1
if j == -1: #插入排序,效率低一点,循环语句内少放语句
break
nums[j+1] = tmp
delta = (datetime.da
#插入排序for写法,
def inter(lst):
for i in range(len(lst)):
current = lst[i]
j = 0
for j in range(i-1,-1,-1):
if current > lst[j]:
lst[j+1] = lst[j]
else:
lst[j+1] = current
break
else:
lst[j] = current
return lst
#插入加冒泡
def inter1(lst):
for i in range(len(lst)):
for j in range(i-1,-1,-1):
if lst[j+1]< lst[j]:
lst[j+1],lst[j] = lst[j],lst[j+1]
else:
break
return lst