首页 > 编程语言 > 详细

数据结构与算法(16)——插入排序

时间:2020-07-19 00:29:47      阅读:59      评论:0      收藏:0      [点我收藏+]
  • 插入排序

时间复杂度:O(n^2)

思想:维持一个已排好的字列表,其位置始终在列表的前部,然后逐步扩大这个字列表至全部,类似正例扑克牌的过程。从后半部分取出一个,然后找他应该在前面列表的位置。

 技术分享图片

 

比对和移动的图解如图所示:

 技术分享图片

  • 代码实现
def insertSort(alist):
    ‘‘‘
    插入排序
    :param alist:
    :return:
    ‘‘‘
    for index in range(1,len(alist)):
        currentvalue = alist[index]
        position = index

        while alist[position - 1] > currentvalue and position >0:
            alist[position] = alist[position -1]
            position = position -1

        alist[position] = currentvalue #插入新项
alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
insertSort(alist)
print(alist)

 

数据结构与算法(16)——插入排序

原文:https://www.cnblogs.com/yeshengCqupt/p/13336355.html

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