算法名称 最差时间复杂度 平均时间复杂度 最优时间复杂度 空间复杂度
插入排序 O(N^2) O(N^2) O(N) O(1)
插入排序不断地在一个已经是有序的数组中,寻找合适位置并插入新元素
插入排序是一种稳定算法。
整个数组分为有序空间和无序空间,有序空间第一位默认已经排序。无序空间从后往前依次进行比较,如果待插入元素大于比较元素,则插入比较元素后一位,如果待插入元素小于比较元素,则插入比较元素前一位,比较元素后移一位。
def insert_sort(source): for i in range(1, len(source)): for j in reversed(range(1,i+1)): if source[j] < source[j - 1]: source[j-1],source[j]=source[j],source[j-1] print(source) return source if __name__ == '__main__': source = [4, 3, 9, 2, 8, 1, 10, 6, 5, 3] insert_sort(source)