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)
相关推荐
爆更小小刘2 分钟前
2.3.1_2 浮点数的表示 IEEE 754(例题训练)
算法
赫瑞18 分钟前
Java中的 Dijkstra 算法
java·算法
小羊羔heihei44 分钟前
Python编程实战:12道趣味算法题
笔记·python·学习·其他·算法·学习方法·交友
三维重建-光栅投影1 小时前
PCL之RANSAC实践
算法
weixin_457760001 小时前
深入解析 Beam Search:从原理到实践的高效解码算法
python·算法
ulimate_1 小时前
anygrasp算法:调研与使用
算法
愣头不青2 小时前
96.不同的二叉搜索树
数据结构·算法·leetcode
⁤⁢初遇2 小时前
C语言数据结构---树
数据结构
AI科技星2 小时前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
ab1515172 小时前
3.27完成3(指针)、13、41、44(指针)、50、51、95、96、97
算法