2-插入排序

算法:插入排序 (属原址排序)

实现:将数据划分为三部分:待排数,待排序列,已排序序列;将待排数通过与已排序的序列从末端进行逐一对比,当待排数不大于当前对比数时将待排序插入对比数之后

时间复杂度: Θ ( n ) \Theta(n) Θ(n)~ Θ ( n 2 ) \Theta(n^2) Θ(n2)

python 复制代码
def insertion_sort(nums):
    for j in range(1, len(nums)): #待排序列
        x = nums[j] #待排数
        i = j - 1 # 已排序的终止索引
        while i >= 0 and nums[i] > x:
            nums[i + 1] = nums[i] #当对比数大于待排数时,对比数后移
            i -= 1 #继续与下一个对比数进行对比
        nums[i + 1] = x #当待排数不大于对比数时,将待排数插入对比数之后

if __name__ == '__main__':
    nums = [5, 2, 4, 6, 1, 3]
    insertion_sort(nums)
    print(nums)
相关推荐
怪奇云呼军30 分钟前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
Nil20837 分钟前
leetcode 416分割等和子集
算法·leetcode·职场和发展
云淡风轻~窗明几净38 分钟前
角谷猜想的进展之三 移动了群山/沸騰的群山 2026-10-10
人工智能·算法·dubbo·图论
ForeverYang20151 小时前
一种无需训练缺陷数据生成算法--O2MAG
人工智能·深度学习·算法
xuxigifxfh2 小时前
牛客:HJ170 01序列
java·开发语言·算法·华为机考
朝朝辞暮i2 小时前
C++ 第 33 课:事件循环——spin() 到底在干什么
开发语言·c++·算法
殷色玫瑰2 小时前
AVL树:从平衡因子到四种旋转的完整实现
c语言·数据结构·c++·算法·visualstudio
jidaowansui3 小时前
B3643 图的存储———>数组模拟邻接矩阵
算法
y1su3 小时前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法
bksczm3 小时前
数据结构的大纲概括
数据结构