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 测试实现方法
Dec 24 Python
python读写二进制文件的方法
May 09 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
详解vue高级特性
2020/06/09 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python实现键盘输入的实操方法
2019/07/16 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
AUC计算方法与Python实现代码
2020/02/28 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
优秀英文求职信范文
2015/03/19 职场文书
员工家属慰问信
2015/03/24 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery