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函数中的函数(闭包)用法实例
Mar 15 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
python实现彩色图转换成灰度图
Jan 15 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
python对接ihuyi实现短信验证码发送
May 10 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python文件夹批处理操作代码实例
Jul 21 Python
python tkinter实现定时关机
Apr 21 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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与javascript实现变量交互的示例代码
2013/07/23 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
用JS实现选项卡
2020/03/23 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
python写入xml文件的方法
2015/05/08 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python判断数字是否是超级素数幂
2018/09/27 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
飞利浦美国官网:Philips美国
2020/02/28 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
采购助理岗位职责
2014/02/16 职场文书
党员创先争优活动总结
2014/05/04 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书