练习题,做个记录而已
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | """ 简单选择排序(插入) """ lst = [1, 5, 4, 3, 2, 8, 9, 6, 7] mark = [] # 记录最新的最大值 for i in range(len(lst)): mark = lst[i] # 先记录无序区域的第一个数值作为参考值 for j in range(i+1, len(lst)): if mark < lst[j]: # 目前做记录的最大值跟后面作比较 mark = lst[j] # 如果后面比较大则更换最大值记录 continue inx = lst.index(mark) lst.insert(i,mark) lst.pop(inx+1) print(lst) """ 简单选择排序(交换) """ lst = [1, 5, 4, 3, 2, 8, 9, 6, 7] mark = [] # 记录最新的最大值 for i in range(len(lst)): mark = lst[i] # 先记录无序区域第一个数值作为参考值 mark1 = lst[i] # 记录无序区域第一个数值,后续用于交换 for j in range(i+1, len(lst)): if mark < lst[j]: # 目前做记录的最大值跟后面作比较 mark = lst[j] # 如果后面比较大则更换最大值记录 continue inx = lst.index(mark) # 求出目前所记录的最大值的定位 lst[i] = mark lst[inx] = mark1 print(lst) |