python算法(3) 插入排序

算法分析

给出一个乱序的数列,将这个数列按从小大到(从大到小)重新排列
插入排序的的逻辑是从选这个数列,一个一个的插入一到一个新的数列中
如下:
初始数列: 5 1 3 7 9 6 4 2
第一个数插入空的数列
5
第二个数 1 < 5
插入5所在的位置
新的数列变成:
1 5
第三个数3
3>1 往后找
3 < 5 插入当前位置 , 新的数列变成
1 3 5
第四个数7
7>1 往后
7>3往后
7>5往后
因为5是最后一个数了,所以插在最后,新的数列变成
1 3 5 7
以此类推.将所有的数都插入新的数列即可

代码实现

# 作者:爱编程的章老师# 创建:2021/1/23 7:47 下午 # 邮箱:slxxf000@163.com# 微信:slxxfl# 微信公众号:A卫隆少儿编程# 格言:给自己的生活增加一份向上的力,每都进步一点点

from random import shuffle

"""插入排序"""# 将目标数组中的元素按从小到大的顺序进行重排.def insertion_sort(num_list: list):    result = [numlist[0]]for i in range(1, len(num_list)):for j in range(len(result)):# 如果要排的数比当前循环到的数要小# 如果比当前循环到的数要到,就继续循环直到最后if num_list[i] < result[j]:# 找到比当前要插入的元素大的位置,插入该位置                result.insert(j, num_list[i])break# 如果查找到最后都没有找到比当前元素大的数,则插入新数列的末尾if j == len(result) - 1:                result.append(num_list[i])return result

# 示例num_list_demo = [x for x in range(100)]shuffle(num_list_demo)print(num_list_demo)res = insertion_sort(num_list_demo)print(res)

python 从大到小循环_python算法(3) 插入排序相关推荐

  1. python 从大到小循环_Python循环小实例----猜大小

    secret = 24 # 设定秘密数字 while True: guess = input(' 你来猜猜我的秘密数字是多少 :') # 输入猜测数字 if int(guess)==secret: # ...

  2. python金融大数据分析视频_Python金融大数据分析 PDF 全书超清版

    给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python金融.大数据分析方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小47.8 MB,希尔皮斯科编写,目前豆瓣.亚马逊. ...

  3. python读取大文件内容_Python模块linecache处理大文件

    linecache模块简介 Python处理大文件需要用到Linecache模块. linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去 ...

  4. python面向对象大段代码_python面向对象部分简单整理

    面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...

  5. python flask 大文件 下载_python flask 建站之文件上传下载(一)

    公众号: 数据乐趣 如有建议和问题,敬请留言. 上一篇简单讲了一下Flask建站的大概流程,本篇举个Flask实例进行说明. 建站简介 实例功能是实现文件的上传和下载. 开发软件采用Pycharm,p ...

  6. python读取大文件内容_python读取大文件

    python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readlined={} a_in = open("testfile.txt& ...

  7. python输出大字号汉字_Python中输出ASCII大文字、艺术字、字符字小技巧

    代码如下: display text in large ASCII art fonts 显示大ASCII艺术字体 这种东西在源码声明或者软件初始化控制台打印时候很有用. 例如下图: 这是查看HTML源 ...

  8. python面向对象大段代码_python粗谈面向对象(一)

    面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg'count=0for i in str_1: #统计字符串元素个数 count += 1list ...

  9. python栈是什么意思_Python算法之栈(stack)的实现

    本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值.具体内容如下: 1.栈stack通常的操作: Stack() 建立一个空的栈对象 push() ...

最新文章

  1. python工具安装教程_Python 开发工具PyCharm安装教程图文详解(新手必看)
  2. 电脑开机3秒就重启循环_U盘如何变成万能维修工具?分享3款PE制作软件,小白秒变电脑高手...
  3. php连接mysql的方式_php有几种连接mysql的方法
  4. java sql server 2016_SQL server 2016 安装步骤
  5. mybatis是否接受运算符参数化
  6. 手机怎样才能接收到五公里外的WiFi信号?
  7. 自动化测试——DDT用法——结合unittest、requests库
  8. 安装LR提示“此计算机缺少 vc2005_sp1_with_atl_fix_redist,请安装所有缺少的必要组件,然后重新运行此安装“
  9. ie 访问 java接口_2019年面试总结,100道Java程序员面试题(含答案)分享
  10. 古希腊神话,古罗马神话和北欧神话
  11. 实验一:端口扫描(X-scan)
  12. 大数据应用于生活,目前主要应用在哪些领域?
  13. idea 从svn 下载项目
  14. Centos7/8 Oracle11g R2 图形化部署
  15. js定时器原理的深度剖析
  16. linux 安卓 挂pt,如何挂PT: Ubuntu / CentOS 7安装Deluge
  17. python爬取b站搜索结果播放地址_Golang 爬虫快速入门 | 获取B站全站的视频数据
  18. 鲁班图片压缩实现仿微信九宫格选择图片效果
  19. 解决 zbrush导出的模型在blender里没有颜色的问题
  20. 【前端】——HTML5基础知识(小白教程)

热门文章

  1. 怎么修改php.in的时间,PHP时间和日期函数怎么操作
  2. linux下安装mysql5.7方法与常见问题
  3. Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
  4. Centos7 yum install chrome
  5. POJ 3422 Kaka's Matrix Travels
  6. 《C++ Primer》第五版课后习题解答_第二章(1)(01-08)
  7. 软件体系架构课下作业07
  8. js 获取最后一个字符
  9. PHP--去除字符串首尾空格
  10. LeetCode-Largest Rectangle in Histogram