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)。插入排序对于小数据集或基本有序的数据集来说效率很高,但对于大数据集,效率较低。

相关推荐
广州山泉婚姻6 小时前
Python序列号源码分析
python
计算机源码社6 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h6 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
小柯南敲键盘7 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_962297257 小时前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
2601_967760787 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
不会就选b8 小时前
算法日常・每日刷题--<贪心>7
数据结构·算法·leetcode
moonrailgun8 小时前
用 Node.js 复刻 Codex Astra 的终端星光
前端·javascript·算法
罗西的思考9 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(1)--- 总体
人工智能·算法·机器学习
YCOSA20259 小时前
系统工具使用检测.exe (仅供娱乐)
python·microsoft