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

在列表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],选择排序操作(升序)如下:

可以描述为: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)]

代码:

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学习网进行查询。

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

  1. 用python写管理系统局域网_详解用python -m http.server搭一个简易的本地局域网

    工作时同事间几mb小文件的传输,一般使用QQ或者微信就足够了,但当传输文件几百MB或者几十G时,这种方法的效率就显得不足了.本篇就是简单说明一个python小功能,让大家能利用python方便的搭建一 ...

  2. 用python写web网页_从零开始,使用python快速开发web站点(1) | 学步园

    环境:ubuntu 12.04 python版本:  2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, 然后,既然是快速开 ...

  3. python写邮箱系统_教大家用Python写一个简单电子邮件发信器

    嘛~炎热的暑假大家都在家干些啥呢?up主本人每天就是摸鱼哒!为了让这个懒懒的up每天从床上早点爬起来,我可是立了不少flag呢~那就先不多说了,直接开始正文吧. 声明一下,本文内容为原创,如果引用其他 ...

  4. python写签到软件_第一个实用python程序——自动填写工作日志、签到

    刚刚把文章重看了一遍,自己给的评价就是:闲的没事干了? 1. 前言 一直苦于每天要分上下午两次写工作日志(不太能理解单位某些部门的脑洞--一天一次不行么?噢--噢噢,好吧,你们抄的模板就是分上下午的, ...

  5. python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?

    python数据结构基础工具书籍下载-持续更新​www.jianshu.com 以上网址有大量python数据结构的书籍下载,内容比较长,我这边拷贝了一部分. 本书示例丰富,图文并茂,以让人容易理解的 ...

  6. python写word表格_使用表格—— 使用Python读写Office文档之三

    本文介绍使用Python在Word中创建一个表格,以及读取表格中的数据. =============================================================== ...

  7. 用python写王字_看这里!Python之web之王!

    Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. Tornado与现 ...

  8. python 显示界片_任何快速的python图形用户界面都可以显示摄像机的实时图像

    我建议使用tkinter,因为它已经是Python的一部分.我从来没有使用过pil,但是一个快速的谷歌显示在tk小部件中很容易使用pil图像(通过pil.imagetk.photoimage()方法) ...

  9. python写自动化工具_微软最强 Python 自动化工具开源了!不用写一行代码!

    1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python 它支持主流的浏览器,包含:Chrome.Firefox.Safari.Microsoft E ...

最新文章

  1. 如何定时备份数据库并上传七牛云
  2. 二位数组的子数组最大值
  3. [Python图像处理] 三十.图像量化及采样处理万字详细总结(推荐)
  4. 如何处理大流量高并发
  5. 深度解析单例与序列化之间的爱恨情仇
  6. APP 文档服务器,app服务器
  7. 【Redis】Redis 使用 redisson 做分布式锁 复盘 maven 依赖 netty 冲突
  8. spring boot整合cxf发布和调用webservice
  9. 【翻译】Emmet(Zen Coding)官方文档 之七 一览表
  10. 联想y50更换固态硬盘_旧笔记本电脑更换固态硬盘
  11. SCRUM 12.23
  12. Codeforces Round #461 (Div. 2)B-Magic Forest+位运算或优雅的暴力
  13. java实用教程丁振凡_Java语言实用教程(第3版)
  14. linux通过80端口系统入侵,【转】21和80端口的入侵
  15. 舍得网开发者碰到的问题及解决(转)
  16. Failed to execute goal on project basic-core-data: Could not resolve dependencies for project ct com
  17. 怎么查微信聊天记录?我来教你几招,祝你无忧。
  18. python2.7 error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
  19. dp什么意思java_%~dp0是什么意思
  20. 拜水野三坡 求得一身财气

热门文章

  1. 【剑指offer】面试题34:二叉树中和为某一值的路径(Java)
  2. java中的账户冻结原理_java可重入锁(ReentrantLock)的实现原理
  3. python处理一亿条数据_Python基础数据处理库
  4. win10下TensorFlow-GPU安装(GTX1660+CUDA10+CUDNN7.4)
  5. 检测系列--YOLO系列
  6. Caffe中的卷积实现
  7. Fater R-CNN 整体把握
  8. Android之数据库操作
  9. SpringBoot 自带工具类~FileCopyUtils
  10. Guava入门~Objects