Python 实现选择排序的算法步骤


Posted in Python onApril 22, 2018

选择排序算法步骤:

找到数组中最小的那个元素中,

将它和数组的第一个元素交换位置,

在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置,

如此往复,知道将整个数组排序。

逐步分析:

假设一个数组有 6 个元素,
[5, 1, 4, 3, 2, 6]
第 1 个元素为 5,与剩余 5 个元素相比,1 是最小的元素,所以 5 和 1 交换位置,
[1, 5, 4, 3, 2, 6]
第 2 个元素为 5,与剩余 4 个元素相比, 2 是最小的元素,所以 5 和 2 交换位置,
[1, 2, 4, 3, 5, 6]
第 3 个元素为 4,与剩余 3 个元素相比, 3 是最小的元素,所以 4 和 3 交换位置,
[1, 2, 3, 4, 5, 6]
不断重复直到排好序。

def select_sort(arr):
  # 索引从 0 到 n-2
  for i in range(len(arr) - 1):
    # 最小元素的索引
    min = i
    # min 与从 i+1 到 n 的元素比较
    j = i + 1
    while j < len(arr):
      if arr[min] > arr[j]:
        # 找到最小的元素
        min = j
      j += 1
    # 交换位置
    arr[i], arr[min] = arr[min], arr[i]


a = [5, 1, 4, 3, 2, 6]
select_sort(a)
print(a)

总结

以上所述是小编给大家介绍的Python 实现选择排序的算法步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现读取命令行参数的方法
May 22 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
python基础教程之Filter使用方法
Jan 17 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
详解用Python把PDF转为Word方法总结
Apr 27 Python
详解Python中下划线的5种含义
Jul 15 Python
python基础之文件操作
Oct 24 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
python学习基础之循环import及import过程
Apr 22 #Python
Python中循环引用(import)失败的解决方法
Apr 22 #Python
Python 数据处理库 pandas进阶教程
Apr 21 #Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 #Python
将python代码和注释分离的方法
Apr 21 #Python
Python基于百度AI的文字识别的示例
Apr 21 #Python
python实现随机调用一个浏览器打开网页
Apr 21 #Python
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php生成静态页面的简单示例
2014/04/17 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
python使用socket远程连接错误处理方法
2015/04/29 Python
让Python代码更快运行的5种方法
2015/06/21 Python
关于Django外键赋值问题详解
2017/08/13 Python
简单了解什么是神经网络
2017/12/23 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
翻译专业应届生求职信
2013/11/23 职场文书
文明学生标兵事迹
2014/01/21 职场文书
项目建议书范文
2014/05/12 职场文书
村官个人总结范文
2015/03/03 职场文书