zoukankan      html  css  js  c++  java
  • 插入排序

    算法名称  最差时间复杂度  平均时间复杂度  最优时间复杂度  空间复杂度     

    插入排序    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)
  • 相关阅读:
    CF1270H
    CF1305G
    LeetCode-Sqrt(x)
    LeetCode-Plus One
    LeetCode-Integer to Roman
    LeetCode-Roman to Integer
    LeetCode-String to Integer (atoi)
    LeetCode-Reverse Integer
    C++
    LeetCode-Gray Code
  • 原文地址:https://www.cnblogs.com/dll26/p/11242812.html
Copyright © 2011-2022 走看看