「python编程算法系列」直接插入排序算法

将第i条记录插入前面i-1条已排序好的记录中:
关键字比较
移动记录

# 直接插入排序算法
def InsertSort(myList):
    # 获取列表长度
    length = len(myList)

    for i in range(1,length):
        # 设置当前值前一个元素的标识
        j = i - 1

        # 如果当前值小于前一个元素,将当前值作为一个临时变量存储,将前一个元素后移一位
        if (myList[i] < myList[j]):
            temp = myList[i]
            myList[i] = myList[j]

        # 继续往前寻找,如果有比临时变量大的数字,则后移一位,直到找到比临时变量小的元素或者到达列表的第一个元素
            j = j - 1
            while j >= 0 and myList[j] > temp:
                myList[j + 1] = myList[j]
                j = j -1

            # 将临时变量赋值到合适位置
            myList[j + 1] = temp

myList = [49,38,65,97,76,13,27,49]
InsertSort(myList)
print(myList)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,220评论 0 52
  • 总结一下常见的排序算法。 排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序...
    jiangliang阅读 1,375评论 0 1
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,282评论 0 2
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    zwb_jianshu阅读 1,208评论 0 0
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    闲云清烟阅读 766评论 0 6