插入排序-by-Python
最好时间复杂度: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相关推荐
- 插入排序的Python实现
插入排序分析 输入: 长度为length的无序列表 返回值: 按照升序排好序的数组 插入排序的基本原理,是从第2项开始遍历到最后一项,每次遍历的起始项之前是一个排好序的列表,在第n次遍历的时候,在排序 ...
- 插入排序InsertionSort(Python实现)
如果你对很多种排序都想要有个了解,可以点这里 如果你对插入排序的C++实现很感兴趣,可以点这里 如果你对MIPS汇编语言实现插入排序,可以点这里 用Python实现插入排序 def Insertion ...
- 二分插入排序法-Python版
简介: 传统的插入法思想为: 1.从头开始,构建有序数列: 2.再将之后需要排序的数据从头至尾(或从尾至头)进行比较,插入到其相应的位置. 而二分插入排序法第一步与传统插入法相同,第二步而是采用二分查 ...
- 插入排序(python)
文章目录 插入排序 图解插入排序 代码实现 插入排序 插入排序的思想和我们打扑克摸牌的时候一样,从牌堆里一张一张摸起来的牌都是乱序的,我们会把摸起来的牌插入到左手中合适的位置,让左手中的牌时刻保持一个 ...
- 直接插入排序的python实现
1 # -*- coding:utf-8 -*- 2 3 '''直接插入的python实现 4 时间复杂度O(n**2) 空间复杂度O(1) 稳定 5 6 思想:先将前两个元素排序,第三个元素插入前面 ...
- 排序算法:插入排序(Python)
思路:在玩扑克牌的时候,我们抽到一张牌的时候,都是将它插入到当前手中牌的合适位置的.直接插入排序也是这样的思想.将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进 ...
- python算法与数据结构-插入排序算法(34)
阅读目录 一.插入排序的介绍 二.插入排序的原理 三.插入排序的图解 四.插入排序的python代码实现 五.插入排序的C语言代码实现 六.插入排序的时间复杂度 七.插入排序的稳定性 一.插入排序的介 ...
- 十大经典排序算法(图解与代码)——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序(Python and Java)
排序 重新排列表中的元素,使表中的元素按照关键字递增或者递减 内部排序: 指在排序期间,元素全部存放在内存中的排序 外部排序: 指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断 ...
- Python实现十大经典排序 I
Python实现十大经典排序 I 摘要: 本博客主要介绍冒泡排序.选择排序.插入排序.快速排序.归并排序等五种排序方法思想及Python实现. 文档版本 版本号 更新时间 作者 更新章节 更新概述 V ...
- python插入排序演示源码
工作闲暇时间,把写内容过程较好的内容段做个备份,下面的内容内容是关于python插入排序演示的内容,应该能对各朋友也有用处. def insert_sort(t): for i in xrange(l ...
最新文章
- ubuntu创建新用户名和密码以及查看删除用户
- 【CyberSecurityLearning 40】网络地址配置(Kali/CentOS)
- android 自定义viewgroup onmeasure,一篇文章搞懂Android 自定义Viewgroup的难点
- flink配置+停止flink中的job
- matplotlib 子图超过4个_Matplotlib从入门到精通
- Git命令之查看及设置用户名邮箱
- 的优先级大小_cache也有优先级
- 逻辑函数代数法化简(一)
- 机器视觉实用工具集NO.15——利用图像放射变换做类似文件扫描仪效果工具
- 计算机表格如何求和,excel表格怎么求和? excel自动求和的三种方法
- 专家:苹果手机换电池对系统速度几乎没影响
- GDAL——命令使用专题——gdalinfo命令
- 免安装PortableGit配置 + TortoiseGit安装
- C语言函数while的用法
- 自学Python 45 数字处理函数(三)
- 前端开发----简介
- 论文翻译 Joint Discriminative and Generative Learning for Person Re-identification
- RLC串并联谐振回路特性、如何判断容性感性
- TOM收费邮箱稀缺终身会员邮靓号现收藏热潮
- matlab使用mex编译c语言报错undefined reference to `__imp_WSAStartup‘
热门文章
- 【CF】556D A Lot of Games
- windows调用ubuntu下的sublimeText2环境搭建
- 使用 log4cxx
- linux 防火墻生成器shorewall
- php开源 饭馆记账软件_GitHub - CNYoki/xxjzWeb: 小歆记账WebApp项目(Web服务端)
- python的web框架哪个最好学_2018年要学习的10大Python Web框架
- Mqtt paho 回调函数触发机制跟踪
- 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
- 兼容ie8 rgba()用法
- 三列浮动中间列宽度自适应