首页 > 代码库 > python 插入排序
python 插入排序
看了那么多插入排序,解释一下这个方法。
分如下几个步骤:
1 认为前面的数列已经完成排序,即按照从小到大的顺序,最大的在最后面
2 将接下来要排列的数a[i]存入一个变量中,a[i] = data。即在 i 这个位置挖了一个坑。
3 从已经排序的数组a[j]的末尾开始,即从最大值a[j] 开始,data不太老实,想通过 j 遍历排列好的部分,找到比自己大的数,然后让他们依次填坑。如果data大,则循环结束,data乖乖回到原来的坑;如果data小,则a[j]往后移动一位填那个坑,然后再空出自己的位置成为新的坑:a[j+1] = a[j]。每轮比较 j-- ,直到 j < 0,或者data回到坑中。
4 循环结束后a[j] 的值是小于新来的值的,则a[j+1]的位置上的值就是新来的值data了:a[j+1] = data。
整个的代码如下:
def Insert_sort(a): for i in range(1,len(a)): data = a[i] #先挖一个坑 j = i - 1 while j >= 0 and a[j] > data: #data看是不是比自己大 a[j+1] = a[j] #是的话,就让那个值往后填坑, a[j+1]永远是data挖的坑 j = j-1 #接着下一个 a[j+1] = data #比较结束了,data回到自己刚挖的坑中 return a
python 插入排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。