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)
相关推荐
心中有国也有家10 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
绝知此事10 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
碧海银沙音频科技研究院10 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
csdn_aspnet11 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
LuminousCPP11 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
AI算法沐枫12 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
m0_6294947314 小时前
LeetCode 热题 100-----26.环形链表 II
数据结构·算法·leetcode·链表
壹号用户14 小时前
用队列实现栈
数据结构·算法
做人求其滴14 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣