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中的Numpy入门教程
Apr 26 Python
Python中的作用域规则详解
Jan 30 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
深入理解python try异常处理机制
Jun 01 Python
代码实例讲解python3的编码问题
Jul 08 Python
Python笔试面试题小结
Sep 07 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
python实现PDF中表格转化为Excel的方法
Jun 16 Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php删除数组元素示例分享
2014/02/17 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
异步JS框架的作用以及实现方法
2015/10/29 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
mac下pycharm设置python版本的图文教程
2018/06/13 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
python config文件的读写操作示例
2019/09/27 Python
python 装饰器的使用示例
2020/10/10 Python
python绘图模块之利用turtle画图
2021/02/12 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
20岁生日感言
2014/01/13 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
教师节主题班会教案
2015/08/17 职场文书
技术入股协议书
2016/03/22 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL