Python插入排序
要求:生成一个包含20个[1,50]随机整数的列表,然后使用插入法对给定整数列表中的所有元素升序排序。
思路如下:
1.将列表切片 并在切片的列表中,找到最小值的位置
2.根据切片的最小值+i(i代表循环的第几次)的来确定列表中的最小值位置
3.获取列表中的最小值的值,
4.删除最小值的位置
5.将最小值插入到 i 索引的位置
6.如此循环直到到达数组末尾
代码如下:
'''
开始: 2020年11月2日09:31:48
6. 生成一个包含20个[1,50]随机整数的列表,然后使用插入法对给定整数列表中的所有元素升序排序。
结束: 2020年11月2日16:16:12
'''
import random
# 生成随机列表
rList = []
for i in range(20):
rList.append(random.randint(1, 51))
print(rList) # 输出随机列表
rListLen = len(rList)
for i in range(rListLen):
# 对列表进行切片操作
r2 = rList[i:rListLen]
# print(r2)
# 切片获得最小值
r2MinNum = min(r2)
# 找出最小值的位置
r2MinLoaction = r2.index(r2MinNum)
minNum = rList[i + r2MinLoaction] # 获取rList中最小的值,防止出现相同值时,反复横跳
del rList[i + r2MinLoaction] # 删除获取到的最小值的索引
rList.insert(i, minNum) # 插入到当前i的位置
print(rList)
'''