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

相关推荐
独自破碎E13 小时前
【手撕真题】合并区间
算法
big_rabbit050213 小时前
[算法][力扣110]平衡二叉树
数据结构·算法·leetcode
qq_4042658313 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
二年级程序员13 小时前
排序(五)“计数排序” 与 “各排序实际用时测量”
c语言·算法·排序算法
qq_4523962313 小时前
【Python × AI】Prompt Engineering 深度工程化:打造大模型的“确定性”控制链路
人工智能·python·ai·prompt
Bright Data13 小时前
Pinterest 数据集示例
后端·python·flask
松☆13 小时前
C++ 程序设计基础:从 Hello World 到数据类型与 I/O 流的深度解析
c++·算法
今儿敲了吗13 小时前
41| 快速乘
数据结构·c++·笔记·学习·算法
ysa05103013 小时前
树的定向(dfs并查集贪心)
数据结构·c++·笔记·算法·深度优先·图论
威联通网络存储13 小时前
某新能源汽车研发中心:基于威联通的全闪存数据治理实践
python·汽车