python写选择排序_如何快速掌握python选择排序算法?

对于算法,我们不少讲述,但是大部分小伙伴都希望,将单个算法拆分讲解,这样可以更加深对算法的印象,好了,本期,就针对选择排序算法,给大家讲解说明哦~感兴趣的小伙伴一起来看下吧~

在列表list模块中,已有排序操作方法的实现:lst = [2,9,5,4,8,1,6]

lst.sort()

print(lst) # output:[1, 2, 4, 5, 6, 8, 9]

如果要自定义实现这一方法呢?

排序一个序列,通常会用到双重(嵌套)循环(双重循环在二维列表、矩阵、行列式中使用比较普通)。

使用双重循环处理一个序列的排序,通常内循环搞定一个元素的位置,外循环搞定一个序列的全部。

排序的方法有很多种,效率及代码难易方面各有千秋。

关于选择排序:

先用一个简单的实例用手动的方式模拟一下实际的操作过程,然后用代码实现一般化。

如数列lst = [2,9,5,4,8,1,6],选择排序操作(升序)如下:

1604730603789348.png

可以描述为:for i in range(len(lst)-1):

.....select the smallest element in lst[i : len(lst)]

....swap the smallest with lst[i], if necessary

# lst[i] is in its correct position

# the next iteration applies to lst[i+1 : len(lst)]

代码:

1604730619453071.png

output:[2, 9, 5, 4, 8, 1, 6]

[1, 9, 5, 4, 8, 2, 6]

[1, 2, 5, 4, 8, 9, 6]

[1, 2, 4, 5, 8, 9, 6]

[1, 2, 4, 5, 8, 9, 6]

[1, 2, 4, 5, 6, 9, 8]

[1, 2, 4, 5, 6, 8, 9]

关于选择排序内容并不难哦~一串代码就可以演示完成了,小伙伴们浏览几遍即可了解哦~如果还想知道更多的python知识,可以到python学习网进行查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现if_数组实现固定栈和队列+栈与队列相互实现

文章目录一、数组实现固定栈和队列1.数组实现固定栈2.数组实现固定队列二、栈与队列相互实现1.两个队列实现栈2.两个栈实现队列一、数组实现固定栈和队列1.数组实现固定栈代码如下:class ArrayStack { private:int *arr;int index; public:ArrayStack(int initSize)…

友情提示,你该找一份假期实习啦!

假期已至, 这么漫长的寒假, 你是否有找一份实习的打算呢? 是否毫无头绪和思路? 是找一份毫无意义的推销工作,传单,快餐店,电话推销等,还是真正找到兴趣所在,专业相关&…

什么意思_invalid是什么意思

invalid是什么意思in,常见的表示反义的前缀,更多例子比如:indifferent, infinite, incapable, etc. valid,形容词,有根据的、让人信服的、有效的、有法律效力的。相关的单词我们还背过validity.validinvalid&#xff0…

互联网技术+非技术书单资源分享,都给泥萌!

为了更好的帮助到大家,从讨论区去找到对应的分享给大家 欢迎留言你想要的书资源,并说明理由(比如为什么想看这本书之类的),这边有的话都会汇总~~ 深入理解java虚拟机 链接: https://pan.baidu.com/s/1wXGZnMiDKd6AKS…

createprocess失败代码2_pytest文档57单元测试代码覆盖率(pytestcov)

前言我们在做测试的时候,经常遇到领导的灵魂拷问:你的测试用例覆盖率是多少,达到100%了么?你如何保证你的测试质量?测试用例的覆盖率如何统计呢,如何知道开发的代码,我们都测到了,不…

java包名和类名可以一样吗_Java入门第三课:Java基本语法

Java基础编写Java程序时,应注意以下几点:1.大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。有些操作系统不区分大小写,不区分的话,文件名是不完全正确的。 然而,如果你的…

C语言入门精髓

上篇说到了C语言还是很基础的编程语言,还是值得去学,那么怎么去学?什么人才能学好?为什么学到一半就早早缴械投降了?众多迷雾,众多的困难,怎么破局? 如有小伙伴想学习C语言基础&…

python 取余_玩转Python源码(一) quot;%squot;与“%d”

某一天吹水的时候,吹着吹着就吹到了一下这么一个案例。import timeitdef a():"%s, %s" % (1, 2)def b():"%s, %d" % (1, 2)def c():"%d, %d" % (1, 2)t timeit.timeit(stmt"a()", setup"from __main__ import a&quo…

笔刷怎么做_原来是这样:用PS笔刷做出颜料肌理效果!

题图插画 | TX灼灼“当我意识到可以利用PS的某些工具,设置不同的画笔之后,一切都变了。有些看起来很不合逻辑的组合,最后产生的效果却是逼真的惊人,再结合合适的形状就能创作出特别又新奇的东西。”——自制笔刷收入超10万美元的插…

qt 3d迷宫游戏_机械迷宫—一款机械风格的3D立体解谜独立游戏

解谜游戏一直是游戏类别中的一个大类,这里面各式各样的解密游戏,多不胜数。解密游戏又分很多种类,比如动作冒险新式的解密游戏,文字图像类型的解密游戏;游戏制作上有大有小,但是都有一个共同特点&#xff0…

Ubuntu下的Linux内核的编译及安装

推荐群:C/C大学技术协会:145655849 Linux中的模块(Modules) Linux的module其实可以看作是内核的插件。 在Linux系统中,可以通过文件 cat /proc/modules xxxxxxxxxx1 1cat /proc/modules 查看相关的驱动模块。 也可以通过命令 l…

执行公式_一学就会,一吃就瘦,超简单又好执行的减肥食谱公式!

对于很多人来说,没有精确计算食物重量的条件,无法每天花费大量的时间精力去自己准备健康的食物,给大家一个不需要食物称,只要在日常饮食基础上看看自己的手掌就能通过类比来选择好食物的种类和合适比例的方法!碳水化合…

apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了

目录回顾昨日nacos 集成Spring Cloud Alibaba 方式Nacos Spring Boot 方式Apollo 集成自研配置中心对接无配置中心对接实现源码分析兼容 Apollo 和 Nacos NoClassDefFoundErrorApollo 自动刷新问题回顾昨日上篇文章 《一时技痒,撸了个动态线程池,源码放 …

c语言 把字符串转换为变量名_如何将抓取下来的unicode字符串转换为中文

如果抓取的数据是json数据,那么直接将抓取的数据用json格式输出出来就行了。如下:response requests.get(url, headersself.headers).json()如果是unicode字符串,那么请继续往下看大家有没有遇见抓取下来的数据是unicode字符串的?如下图所示…

c++ 读取访问权限冲突_Linux系统利用可执行文件的Capabilities实现权限提升

一、操作目的和应用场景Capabilities机制是在Linux内核2.2之后引入的,原理很简单,就是将之前与超级用户root(UID0)关联的特权细分为不同的功能组,Capabilites作为线程(Linux并不真正区分进程和线程)的属性存在,每个功能组都可以独…

Python 数据分析 Matplotlib篇 时间序列数据绘制折线图(第4讲)

Python 数据分析 Matplotlib篇 时间序列数据绘制折线图(第4讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

家装强电弱电布线图_家装水电施工标准(图文版),装修小白一眼也能看懂。...

如果把家比喻成一个人,房子是骨骼,那么水电路则相当于人体的血管和动脉,正因为他们的存在,才赋予家鲜活的生命。由此,水电施工自然也成为家装工程的重中之重。水电走线原则※ 水电弹线放样施工,使用切割机开…

0基础必看:如何轻松成为C语言高手

诞生于上世纪70年代的C语言是一门古老的语言了, 但作为一门底层语言,时至今日它仍然非常强大。学习C语言能够为学习其他更复杂的语言打下良好的基础,因为你在C语言中学习到的知识对几乎所有的编程语言都适用。下面就来看看如何开始用C语言编程吧。   工具   Mic…

python列表元素之和_python实现计算列表元素之和

目标:定义一个数字列表,并计算列表元素之和。 例如: 输入 : [12, 15, 3, 10] 输出 : 40 方法一:total 0 list1 [11, 5, 17, 18, 23] for ele in range(0, len(list1)): total total list1[ele] print("列表元素之和为: &…

双水泵轮换工作原理图_一用一备式冷凝水泵应急电源的设计与实现

为保障山西通州集团兴益化工有限公司10万吨甲醇工程一用一备式冷凝水泵的安全运行,专门设计动力负载应急电源。作者阐述了动力负载应急电源基本原理及其控制系统设计,经现场调试运行,动力负载应急电源很好满足生产现场要求。山西通州集团兴益…