📅  最后修改于: 2023-12-03 15:41:09.396000             🧑  作者: Mango
本文将介绍一种常见的排序算法——插入排序,并通过问题10来演示其应用。
插入排序是一种简单直观、易于理解和实现的排序算法,也是一种稳定排序算法。它是通过构建有序序列,对未排序的数据逐个插入到有序序列中,以达到排序的目的。
问题10:给定一个整数数组 nums,将该数组升序排列。
示例:
输入: [5,2,3,1]
输出: [1,2,3,5]
以下为使用Python实现插入排序的代码:
def insertion_sort(nums):
for i in range(1, len(nums)):
j = i
while j > 0 and nums[j] < nums[j-1]:
nums[j], nums[j-1] = nums[j-1], nums[j]
j -= 1
return nums
代码解读:
for i in range(1, len(nums)):
以下是对插入排序的性能测试:
from random import randint
import time
nums = [randint(-1000, 1000) for _ in range(10000)]
start = time.time()
insertion_sort(nums)
print("插入排序耗时:", time.time() - start)
运行结果:
插入排序耗时: 5.590409994125366
虽然插入排序的时间复杂度较高且不如快速排序等高级算法,但其实现简单,代码量较小,适用于数据规模较小的场景。在大多数语言的排序库中,也都包含了插入排序的实现。