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标准异常和异常处理详解
Feb 02 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
简单了解Python write writelines区别
Feb 27 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
Pycharm安装第三方库失败解决方案
Nov 17 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使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
Python日志器使用方法及原理解析
2020/09/27 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
计算机毕业生自荐信范文
2014/03/23 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
医院见习报告范文
2014/11/03 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电