首页 > 编程语言 > 详细

数据结构:插入排序python

时间:2020-05-15 22:31:09      阅读:57      评论:0      收藏:0      [点我收藏+]

思路:跟选择排序一样,将数据分为两部分,将第一个元素为固定的,有序的,剩下的元素都是无序的,将无序的第一个元素和之前有序的部分进行比较,变成有序的,以此类推

    [25,66,85,2,60]

    [25,66,        85,2,60]

    [25,66,85               2,60]

    [2,25,66,85            60]

    [2,25,60,66,85]

根据政治思路,我们先将第一次交换写出来,如下:

#coding: utf-8

def insert_sort(alist):
    i=1
    if alist[i]<alist[i-1]:
        alist[i],alist[i-1]=alist[i-1],alist[i]


a=[55,2,88,6,66,901,562]
print(a)
insert_sort(a)
print(a)

 技术分享图片

 

 这时候我们从整体考虑,上面写的过程要进行多少次,除了第一个元素不动以后,其它上面元素都应该取得,我们写一个外循环   for i in range(1,n)

让i=j,内循环里面让i=i-1,这样就可以不断跟之前的元素进行比较,当然如果大于了,直接跳出内循环,进行下一个循环

  代码实现如下:

#coding: utf-8

def insert_sort(alist):
    n=len(alist)
    for j in range(1,n):
        i=j
        while i>0:
            if alist[i]<alist[i-1]:
                alist[i],alist[i-1]=alist[i-1],alist[i]
                i=i-1
            else:
                break

a=[55,2,88,6,66,901,562]
print(a)
insert_sort(a)
print(a)

  结果:技术分享图片

 

数据结构:插入排序python

原文:https://www.cnblogs.com/cong3Z/p/12897572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!