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学习小技巧之利用字典的默认行为
May 20 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Django自定义manage命令实例代码
Feb 11 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
python读取ini配置的类封装代码实例
Jan 08 Python
如何基于python实现归一化处理
Jan 20 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
如何教少儿学习Python编程
Jul 10 Python
python3中确保枚举值代码分析
Dec 02 Python
Django自带的用户验证系统实现
Dec 18 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
非常实用的php验证码类
2016/05/15 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
内容编辑个人求职信
2013/12/10 职场文书
银行内勤岗位职责
2014/04/09 职场文书
广告宣传策划方案
2014/05/21 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python