当前位置: 首页 > news >正文

python实现插入排序算法

插入排序是指,在已经排序过的列表,将需要添加的数据从开头依次进行比较,找到保存的位置,并将数据进行插入排序的方法。

比如列表

6,15,4,2,8,5,11,9,7,13

第一步6和15比较,15大,不用比较。

第二步 4和前面两个数比较,就是6和15,4最小,将4插入到最前面。

编程语言如何实现这个过程,将4和前面两个数比较。

首先将4存储到一个临时变量,变量起名叫temp。

第二步将4和前面的15比较,如果15比4大,将原来4的位置的数由4变为15

第三步,将6和4比较,4小,将6的位置移到第二位

第四步,将4放到第一位

python代码如下

#选择排序法

#设置要排序的数组
data = [6,15,4,2,8,5,11,9,7,13]

#选择排序法
for i in range(1,len(data)):
    temp=data[i] #把要比较的值存入临时变量temp
    j=i-1         #循环变量j从i回退
    while (j>=0) and (data[j]>temp):
        data[j+1]=data[j]  #元素分别往后移一位
        j-=1
    data[j+1] = temp
    
print(data)       

插入排序从前面代码可以看到首先将要比较的数不断存到临时变量里,这是一层循环,将要比较的数和前面的数比较是第二层循环,算法时间复杂度是O(n^2),空间复杂度是O(1)

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高防IP是如何防御攻击
  • 【C++登堂入室】类和对象(中)——类的6个默认成员函数
  • SprinBoot+Vue民宿预约微信小程序的设计与实现
  • [数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别
  • 基于springboot的甜鱼闲置物品交易网站的设计与实现---附源码77155
  • 再次进阶 舞台王者 第八季完美童模全球赛品牌大使【韩嘉滢】赛场秀场超燃合集!
  • Playwright 自动化验证码教程
  • ansible_find模块
  • 计算机三级 - 数据库技术 - 第十三章 大规模数据库架构 笔记
  • Java面试八股文
  • 一些实用的高阶用法--python
  • OpenCV结构分析与形状描述符(17)判断轮廓是否为凸多边形的函数isContourConvex()的使用
  • 监控易监测对象及指标之:全面监控Oracle数据库
  • cartographer从入门到精通(一):cartographer介绍
  • java八股!5(线程创建+并发容器+线程锁)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android优雅地处理按钮重复点击
  • CSS魔法堂:Absolute Positioning就这个样
  • If…else
  • Laravel Telescope:优雅的应用调试工具
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • spring boot 整合mybatis 无法输出sql的问题
  • VuePress 静态网站生成
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 从输入URL到页面加载发生了什么
  • 前端性能优化——回流与重绘
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 提醒我喝水chrome插件开发指南
  • 通过git安装npm私有模块
  • 小程序开发中的那些坑
  • 【干货分享】dos命令大全
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • C# - 为值类型重定义相等性
  • 带你开发类似Pokemon Go的AR游戏
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #知识分享#笔记#学习方法
  • $(function(){})与(function($){....})(jQuery)的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (+4)2.2UML建模图
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Qt) 默认QtWidget应用包含什么?
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (黑马点评)二、短信登录功能实现
  • (十八)三元表达式和列表解析
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)Google的Objective-C编码规范
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET 的程序集加载上下文
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 XPath 来读写 XML 文件