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 相关文章推荐
Python2.x与Python3.x的区别
Jan 14 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
python实现浪漫的烟花秀
Jan 30 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
Python 如何提高元组的可读性
Aug 26 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
Python装饰器使用你可能不知道的几种姿势
Oct 25 Python
Python解析json代码实例解析
Nov 25 Python
如何在python中实现线性回归
Aug 10 Python
用python进行视频剪辑
Nov 02 Python
python实现腾讯滑块验证码识别
Apr 27 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
PHP学习笔记之一
2011/01/17 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
关于JavaScript中的关联数组分析
2013/04/09 Javascript
javascript基本类型详解
2014/11/28 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
Python splitlines使用技巧
2008/09/06 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
python redis 删除key脚本的实例
2019/02/19 Python
深入了解python中元类的相关知识
2019/08/29 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
2014新年寄语
2014/01/20 职场文书
上班看电影检讨书
2014/02/12 职场文书
家长写给老师的建议书
2014/03/13 职场文书
全运会口号
2014/06/20 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
2014年团队工作总结
2014/11/24 职场文书
先进基层党组织材料
2014/12/25 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
学雷锋活动简报
2015/07/20 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis