python插入排序

参考:www.bilibili.com/video/BV1E4…

实现

import datetime
import random
from functools import wraps

tempList = [random.randint(0, 100000) for x in range(50000)]


def logger(function):
    @wraps(function)
    def wrapper(*args, **kwargs):
        start = datetime.datetime.now().timestamp()
        result = function(*args, **kwargs)
        end = datetime.datetime.now().timestamp()
        print(f"总共花了{int(end - start)}s")
        return result

    return wrapper


# [3,1,2,4,5]
@logger
def insertSort(l):
    for i in range(1, len(l)):
        insertIndex = i - 1
        insertValue = l[i]
        while insertIndex >= 0 and insertValue < l[insertIndex]:
            l[insertIndex + 1] = l[insertIndex]
            insertIndex -= 1
        if insertIndex + 1 != i:
            l[insertIndex + 1] = insertValue
    return l


insertSort(tempList)


image.png