python简单实现插入排序实例代码


Posted in Python onDecember 16, 2020

Python中会遇到很多关于排序的问题,今天小编就带给大家实现插入排序的方法。在Python中插入排序的基本原理类似于摸牌,将摸起来的牌插入到合适位置。具体实现请看本文。

基本原理

类似于摸牌,将摸起来的牌插入到合适位置。

代码:

# -*- 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)

易忘点和易错点

a. 不要忘记列表长度为1的情况。

b. 注意break的使用以及位置,是放在if语句下面,如果放到第二层for循环下,就会一直循环。

插入排序算法图

python简单实现插入排序实例代码

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

Python 相关文章推荐
python实现下载整个ftp目录的方法
Jan 17 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
对python中dict和json的区别详解
Dec 18 Python
Django的Modelforms用法简介
Jul 27 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
Python实现验证码识别
Jun 15 Python
Python如何解除一个装饰器
Aug 07 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
python中函数返回多个结果的实例方法
Dec 16 #Python
python的setattr函数实例用法
Dec 16 #Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 #Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 #Python
python unichr函数知识点总结
Dec 16 #Python
python 模拟登录B站的示例代码
Dec 15 #Python
python 模拟登陆163邮箱
Dec 15 #Python
You might like
php自动加载的两种实现方法
2010/06/21 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
php中请求url的五种方法总结
2017/07/13 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
python自动12306抢票软件实现代码
2018/02/24 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python中logging日志库实例详解
2020/02/19 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
Python-for循环的内部机制
2020/06/12 Python
python爬取代理ip的示例
2020/12/18 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
心理健康活动总结
2014/04/30 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
美术教师个人工作总结
2015/02/06 职场文书
被告代理词范文
2015/05/25 职场文书