插入排序(Insertion sort)

原理:
每插入一个数都要将它和之前的已经完成排序的序列进行重新排序,也就是将新插入的数对应原序列中的位置那么也就是说,每次插入一个数都要对原来排序好的那部分序列进行重新的排序,时间复杂程度同样为O(n2)。这种排序算法是稳定的算法。

插入排序有点冒泡的感觉,他是从最后往前边一点一点的插入。

def insertion_sort(nums):
    for i in range(1, len(nums)):
        for j in range(i, 0, -1):
            if nums[j] < nums[j-1]:
                nums[j], nums[j-1] = nums[j-1], nums[j]


if __name__ == '__main__':
    nums = [5, 6, 8, 45, 52, 21, 37, 98]
    insertion_sort(nums)
    print(nums)
全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务