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服务器拒绝服务攻击代码
Jan 16 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
Python读写配置文件的方法
Jun 03 Python
在Django的form中使用CSS进行设计的方法
Jul 18 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Django 实现购物车功能的示例代码
Oct 08 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
python实现批量移动文件
Apr 05 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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如何将日志写进syslog
2013/06/28 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
基于python实现坦克大战游戏
2020/10/27 Python
python中random模块详解
2021/03/01 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
餐厅经理岗位职责范本
2014/02/17 职场文书
高中同学会活动方案
2014/08/14 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
教师岗位职责
2015/02/03 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript