直接插入排序
目录 插入排序 一、直接插入排序 1、原理 2、排序思想 3、代码实现 4、总结 插入排序 标签(空格分隔): python-排序算法 一、直接插入排序 1、原理 再末排序序列中,构建一个子排序序列,知道全部数据排序完成; 再待排序的数,插入到 已经排序 的序列中合适的位置 增加一个 哨兵 ,放入待比较值,让它和后面已经排好序的序列比较,找到合适的插入位置 2、排序思想 1、增加一个哨兵位,每轮比较将待比较数放入 2、哨兵一次和待比较数的前一个数据比较,大数靠右移动,找到哨兵中值的插入位置 3、每一轮结束后,得到一个从开始到带比较数位置的一个有序序列 3、代码实现 lst = [7, 9, 2, 5, 3, 1] # 直接插入排序 - 升序排列 newlst = lst[:] # 原样拷贝一份数据 newlst = [0] + newlst # 增加一个哨兵位 length = len(newlst) for i in range(2, length): newlst[0] = newlst[i] # 确定排序数据的有序区 j = i-1 if newlst[j] > newlst[0]: # 此处可以控制不会越界 while newlst[j] > newlst[0]: newlst[j+1] = newlst[j] print("----", newlst) j -= 1