R/Python

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

2019-11-10  本文已影响0人  茶苯海

将第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)

上一篇 下一篇

猜你喜欢

热点阅读