Python插入排序

插入排序是一种简单的排序算法,它通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要移动元素以腾出空间。

以下是Python中实现插入排序的示例代码:

python 复制代码
def insertion_sort(arr):
    # 遍历数组中的所有元素,从第二个元素开始
    for i in range(1, len(arr)):
        key = arr[i]  # 当前要插入的元素
        j = i - 1
        # 将大于key的元素向后移动
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        # 将key插入到正确的位置
        arr[j + 1] = key

# 示例
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print("排序后的数组:", arr)

插入排序的时间复杂度是O(n^2),其中n是数组的长度。在最好的情况下(输入数组已经是排序的),时间复杂度是O(n)。插入排序对于小数据集或基本有序的数据集来说效率很高,但对于大数据集,效率较低。

相关推荐
skd899915 分钟前
小蜗牛拨号助手用户使用手册
python
「QT(C++)开发工程师」20 分钟前
STM32 | FreeRTOS 递归信号量
python·stm32·嵌入式硬件
YouQian77227 分钟前
2025春训第十九场
算法
CodeJourney.27 分钟前
基于MATLAB的生物量数据拟合模型研究
人工智能·爬虫·算法·matlab·信息可视化
史迪仔011228 分钟前
[python] Python单例模式:__new__与线程安全解析
开发语言·python·单例模式
Epiphany.55630 分钟前
素数筛(欧拉筛算法)
c++·算法·图论
胡耀超42 分钟前
18.自动化生成知识图谱的多维度质量评估方法论
人工智能·python·自动化·知识图谱·数据科学·逻辑学·质量评估
爱吃涮毛肚的肥肥(暂时吃不了版)43 分钟前
项目班——0510——JSON网络封装
c++·算法·json
liang_20261 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
緈福的街口1 小时前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展