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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
Python实现分段线性插值
Dec 17 Python
python使用thrift教程的方法示例
Mar 21 Python
详解python深浅拷贝区别
Jun 24 Python
python如何从键盘获取输入实例
Jun 18 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 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
一些星际专用术语解释
2020/03/04 星际争霸
PHP中,文件上传
2006/12/06 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP运行模式汇总
2016/11/06 PHP
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
JS实现购物车特效
2017/02/02 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
python实现音乐下载器
2018/04/15 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
大专生简历的自我评价
2013/11/26 职场文书
师范生个人推荐信
2013/11/29 职场文书
主题教育活动总结
2014/05/05 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
2015年保送生自荐信
2015/03/24 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
pytorch Dropout过拟合的操作
2021/05/27 Python