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

相关推荐
2401_831419441 分钟前
mysql如何测试用户权限是否生效_使用不同用户身份验证操作
jvm·数据库·python
2301_809204704 分钟前
Redis怎样强行终止陷入死循环的Lua脚本
jvm·数据库·python
Hello.Reader4 分钟前
算法基础(九)——循环不变式如何证明一个算法是正确的
java·开发语言·算法
寻道模式4 分钟前
【开发心得】给私有部署OpenClaw添加PDF阅读技能
开发语言·python·pdf
wuweijianlove6 分钟前
算法稳定性分析中的输入扰动建模的技术7
算法
2401_846339566 分钟前
mysql如何确保主从数据完全同步_开启半同步复制机制
jvm·数据库·python
流年viv7 分钟前
投稿_电价预测优化实践
python·数据分析·ai编程
m0_7414817811 分钟前
mysql如何设置定时自动备份脚本_编写shell脚本与cron任务
jvm·数据库·python
m0_6315298212 分钟前
如何用 cache 参数控制 Fetch 是否读取浏览器自带的缓存
jvm·数据库·python
m0_4708576413 分钟前
CSS如何实现表单元素的统一样式_使用CSS变量控制输入框状态
jvm·数据库·python