插入排序算法(Python版)

1、什么是插入排序算法

插入排序算法是一种简单直观的排序算法,它的基本思想是将一个元素逐个插入到已排序的序列中,从而构建出完整的有序序列。

插入排序算法的时间复杂度为O(n^2),其中n为待排序序列的长度。虽然插入排序在大规模数据上可能不如快速排序或归并排序等算法快速,但对于小规模或部分有序的数据,插入排序具有稳定性和简单性的优势。

2、具体步骤

  1. 从第二个元素开始,将当前元素视为已排序部分,将它与已排序的部分依次比较。
  2. 如果当前元素小于已排序部分的某个元素,则将这个元素后移一位,为当前元素腾出插入的位置。
  3. 将当前元素插入到正确的位置,使得插入后的序列仍然保持有序。
  4. 重复以上步骤,直到所有元素都被插入到正确的位置,完成排序。

3、代码示例

python 复制代码
def insertion_sort(arr):
    n = len(arr)
    for i in range(1, n):
        key = arr[i]
        j = i - 1
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key

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

这段代码定义了一个名为insertion_sort的函数,用于对输入的数组进行插入排序。排序过程中,从第二个元素开始(索引为1),将当前元素与已排序的部分进行比较并插入正确的位置,直到整个数组排序完成。

相关推荐
开开心心就好1 分钟前
解决图片无页码添加功能的实用工具
javascript·python·安全·智能手机·pdf·音视频·1024程序员节
代码中介商1 分钟前
排序算法完全指南(八):归并排序深度详解
数据结构·算法·排序算法
风吹夏回9 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
kkeeper~9 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
小熊Coding9 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋99 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本9 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
田里的水稻10 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人
wabs66611 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_8769641311 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉