没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
直接插入排序 前面文章已经讲完了交换类排序,接下来开始学习插入类排序。顾名思义,所谓插入排序指我们会为每一个数据安排一个适合它的位置并将其插入,直到所有数据就位则排序完成。 直接插入法便是插入排序的典型方法,完全继承了插入排序的“脾气”:简单、粗暴,逮到就插入,毫无技术可言,耿直得可爱。 1. 算法思想 将待排序数组中的记录逐一插入已排序的子序列中,从而得到一个完整的有序数组。 2. 算法步骤 (1)将数组的第一个数据看成一个有序的子序列。 (2)从第二个数据开始,依次与前面的有序子序列进行比较,若待插入数据 array[i]大于或等于array[i-1] ,则原位插入:若待插入数据 array[i]小于数据 array[i-1],则将数据array[i]临时存放在哨兵t emp中,将有序序列中大于哨兵的所有数据后移一位,然后将哨兵数据插入相应位置。 (3)重复步骤(2),直到整个数组变成有序数组。 3. 算法分析 也许有的读者看得有点糊涂了。为了便于理解,我们将步骤进行拆分讲解。假设我们要给数组[3,1,8,2,1,5]进行排序,由于有两个1,所以将第二个1标记为“1*”,排序
资源推荐
资源详情
资源评论
Python
# 直接插入排序
def insert_sort(array) :
n = len (array)
#切记是从 1 到 n-1,前闭后开
for i in range(1, n):
# 如果待插入数据小于前一个数据
if array[i] < array[i-1]:
# index 为待插入的下标
index = i
# 将待插入的数据存放在 temp 中
temp = array[i]
# 从 i-1 循环到 0(包括 0),反向取值,间距为 1 前两个参数表示区间,第三个参
数表示取值的方向和间距
for j in range(i-1,-1,-1):
# 如果 array[j]大于哨兵值
if array[j] > temp:
# 将 array [j]后移一位
array[j+1] = array[j]
# 更新待插入的下标
index = j
# 如果 array[j]小于或等于哨兵值
资源评论
忆梦九洲
- 粉丝: 1193
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功