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创建关联数组(字典)的方法
May 04 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
200行python代码实现2048游戏
Jul 17 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
python生成任意频率正弦波方式
Feb 25 Python
Django接收照片储存文件的实例代码
Mar 07 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
Python 如何创建一个线程池
Jul 28 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
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/08 日漫
Yii2.0表关联查询实例分析
2016/07/18 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
python爬虫常用的模块分析
2014/08/29 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
python实现udp数据报传输的方法
2014/09/26 Python
Python切换pip安装源的方法详解
2016/11/18 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
思想品德自我评价
2014/02/04 职场文书
学期个人自我总结
2015/02/13 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
Java中API的使用方法详情
2022/04/06 Java/Android
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏