python中的插入排序的简单用法


Posted in Python onJanuary 19, 2021

现在大家学习python掌握内容了解太多太多,但是最重要的不是掌握了解算法的使用,而是了解算法原理远比使用算法命令更重要,现在大家了解算法应该都不低于5种了吧,比如排序算法、冒泡算法、归并算法等等,那对本期主题插入算法有过了解吗?如果没有了解的小伙伴可以跟着小编一起来了解学习。

插入排序简介:

将列表分为有序区和无序区两个部分,最初有序区只有一个元素,即第一个元素。

然后每次从无序区选择一个元素,插入到有序区中,直到无序区为空。

运行图示:

python中的插入排序的简单用法

实现代码:

# 选择排序 O(n2)
def insert_sort(li):
 for i in range(1, len(li)):
  tmp = li[i]
  j = i - 1
   while j >= 0 and li[j] > tmp:
      li[j + 1] = li[j]
   j -= 1
    li[j+1] = tmp

扩展实例代码:

# -*- coding: utf-8 -*-
'''
插入排序:
 类似于摸牌,从牌堆中摸一张牌,和手中现有手牌比较。若大则放右边,小放左边。

''
def insert_sort(input_list):
 if len(input_list)<=1:
 return input_list
 for right in range(1,len(input_list)): # 开始从牌堆中摸牌
 val = input_list[right]  # 当前摸牌的值
 for left in range(0,right): # 循环和手中牌进行比较
  if val <= input_list[left]: # 若<最左边的牌了
  input_list[left+1:right+1]=input_list[left:right]
  input_list[left]=val
  break
 return input_list
if __name__ == '__main__':
 pre_list = [1,6,3,3,7]
 res = insert_sort(pre_list)
 print(res)

到此这篇关于python中的插入排序的简单用法的文章就介绍到这了,更多相关python中的插入排序怎么用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python字符转换
Sep 06 Python
深入理解Django的中间件middleware
Mar 14 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
python3 求约数的实例
Dec 05 Python
python实现吃苹果小游戏
Mar 21 Python
python有几个版本
Jun 17 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 #Python
Python爬虫后获取重定向url的两种方法
Jan 19 #Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 #Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 #Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 #Python
selenium携带cookies模拟登陆CSDN的实现
Jan 19 #Python
django项目中使用云片网发送短信验证码的实现
Jan 19 #Python
You might like
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
javascript中的this作用域详解
2019/07/15 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Python集合操作方法详解
2020/02/09 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
python二维图制作的实例代码
2020/12/03 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
旧时光糖果:Old Time Candy
2018/02/05 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
产品促销活动策划书
2014/01/15 职场文书
药学职务聘任书
2014/03/29 职场文书
安全教育月活动总结
2014/05/05 职场文书
北京奥运会口号
2014/06/21 职场文书
法院授权委托书范文
2014/08/02 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
2014年绿化工作总结
2014/12/09 职场文书
行政上诉状范文
2015/05/23 职场文书
六年级作文之自救
2019/12/19 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL