最好时间复杂度:O(n)

最坏时间复杂度:O(n²)

平均时间复杂度:O(n²)

空间复杂度:O(1)

是否为稳定排序:Yes

sort in place:Yes

python 实现:

class Solution:def insertionSort(self, nums):""":type nums: List[int]:rtype: void"""length = len(nums)if length <= 1:returnfor i in range(0, length-1):for j in range(i+1, 0, -1):# 不用“<=”为了保证排序的稳定性if nums[j] < nums[j-1]:nums[j], nums[j-1] = nums[j-1], nums[j]# 当已排序部分的最大值小于等于本次的取值,本次操作直接中断else:breakreturnif __name__ == "__main__":nums = [1,3,2,4,6,8,4,5,6,7]s = Solution()s.insertionSort(nums)print(nums)
复制代码

插入排序-by-Python相关推荐

  1. 插入排序的Python实现

    插入排序分析 输入: 长度为length的无序列表 返回值: 按照升序排好序的数组 插入排序的基本原理,是从第2项开始遍历到最后一项,每次遍历的起始项之前是一个排好序的列表,在第n次遍历的时候,在排序 ...

  2. 插入排序InsertionSort(Python实现)

    如果你对很多种排序都想要有个了解,可以点这里 如果你对插入排序的C++实现很感兴趣,可以点这里 如果你对MIPS汇编语言实现插入排序,可以点这里 用Python实现插入排序 def Insertion ...

  3. 二分插入排序法-Python版

    简介: 传统的插入法思想为: 1.从头开始,构建有序数列: 2.再将之后需要排序的数据从头至尾(或从尾至头)进行比较,插入到其相应的位置. 而二分插入排序法第一步与传统插入法相同,第二步而是采用二分查 ...

  4. 插入排序(python)

    文章目录 插入排序 图解插入排序 代码实现 插入排序 插入排序的思想和我们打扑克摸牌的时候一样,从牌堆里一张一张摸起来的牌都是乱序的,我们会把摸起来的牌插入到左手中合适的位置,让左手中的牌时刻保持一个 ...

  5. 直接插入排序的python实现

    1 # -*- coding:utf-8 -*- 2 3 '''直接插入的python实现 4 时间复杂度O(n**2) 空间复杂度O(1) 稳定 5 6 思想:先将前两个元素排序,第三个元素插入前面 ...

  6. 排序算法:插入排序(Python)

    思路:在玩扑克牌的时候,我们抽到一张牌的时候,都是将它插入到当前手中牌的合适位置的.直接插入排序也是这样的思想.将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进 ...

  7. python算法与数据结构-插入排序算法(34)

    阅读目录 一.插入排序的介绍 二.插入排序的原理 三.插入排序的图解 四.插入排序的python代码实现 五.插入排序的C语言代码实现 六.插入排序的时间复杂度 七.插入排序的稳定性 一.插入排序的介 ...

  8. 十大经典排序算法(图解与代码)——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序(Python and Java)

    排序 重新排列表中的元素,使表中的元素按照关键字递增或者递减 内部排序: 指在排序期间,元素全部存放在内存中的排序 外部排序: 指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断 ...

  9. Python实现十大经典排序 I

    Python实现十大经典排序 I 摘要: 本博客主要介绍冒泡排序.选择排序.插入排序.快速排序.归并排序等五种排序方法思想及Python实现. 文档版本 版本号 更新时间 作者 更新章节 更新概述 V ...

  10. python插入排序演示源码

    工作闲暇时间,把写内容过程较好的内容段做个备份,下面的内容内容是关于python插入排序演示的内容,应该能对各朋友也有用处. def insert_sort(t): for i in xrange(l ...

最新文章

  1. ubuntu创建新用户名和密码以及查看删除用户
  2. 【CyberSecurityLearning 40】网络地址配置(Kali/CentOS)
  3. android 自定义viewgroup onmeasure,一篇文章搞懂Android 自定义Viewgroup的难点
  4. flink配置+停止flink中的job
  5. matplotlib 子图超过4个_Matplotlib从入门到精通
  6. Git命令之查看及设置用户名邮箱
  7. 的优先级大小_cache也有优先级
  8. 逻辑函数代数法化简(一)
  9. 机器视觉实用工具集NO.15——利用图像放射变换做类似文件扫描仪效果工具
  10. 计算机表格如何求和,excel表格怎么求和? excel自动求和的三种方法
  11. 专家:苹果手机换电池对系统速度几乎没影响
  12. GDAL——命令使用专题——gdalinfo命令
  13. 免安装PortableGit配置 + TortoiseGit安装
  14. C语言函数while的用法
  15. 自学Python 45 数字处理函数(三)
  16. 前端开发----简介
  17. 论文翻译 Joint Discriminative and Generative Learning for Person Re-identification
  18. RLC串并联谐振回路特性、如何判断容性感性
  19. TOM收费邮箱稀缺终身会员邮靓号现收藏热潮
  20. matlab使用mex编译c语言报错undefined reference to `__imp_WSAStartup‘

热门文章

  1. 【CF】556D A Lot of Games
  2. windows调用ubuntu下的sublimeText2环境搭建
  3. 使用 log4cxx
  4. linux 防火墻生成器shorewall
  5. php开源 饭馆记账软件_GitHub - CNYoki/xxjzWeb: 小歆记账WebApp项目(Web服务端)
  6. python的web框架哪个最好学_2018年要学习的10大Python Web框架
  7. Mqtt paho 回调函数触发机制跟踪
  8. 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
  9. 兼容ie8 rgba()用法
  10. 三列浮动中间列宽度自适应