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中无限元素列表的实现方法
Aug 18 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
Python中property属性实例解析
Feb 10 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Python3爬虫学习入门教程
Dec 11 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
Python转换时间的图文方法
Jul 01 Python
基于python判断目录或者文件代码实例
Nov 29 Python
Python如何操作docker redis过程解析
Aug 10 Python
python多线程方法详解
Jan 18 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
php中常用编辑器推荐
2007/01/02 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
php绘制一条直线的方法
2015/01/24 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
PDO实现学生管理系统
2020/03/21 PHP
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python魔法方法详解
2019/02/13 Python
django中间键重定向实例方法
2019/11/10 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python中wheel的用法整理
2020/06/15 Python
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
毕业生机械建模求职信
2013/10/14 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
企业元宵节主持词
2014/03/25 职场文书
申论倡议书范文
2014/05/13 职场文书
公关活动策划方案
2014/05/25 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
协议书范文
2015/01/27 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
Elasticsearch 配置详解
2022/04/19 Java/Android
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server