Python实现选择排序


Posted in Python onJune 04, 2017

选择排序:

选择排序(Selection sort)是一种简单直观的 排序算法 。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

Python 实现:

# selection_sort.py
 def selection_sort(arr):
   count = len(arr)
   for i in range(count-1):  # 交换 n-1 次
     min = i
     # 找最小数
     for j in range(i, count):
       if arr[min] > arr[j]:
         min = j
     arr[min], arr[i] = arr[i], arr[min]  # 交换
   return arr
 
 my_list = [6, 23, 2, 54, 12, 6, 8, 100]
 print(selection_sort(my_list))
Python 相关文章推荐
python基础教程项目四之新闻聚合
Apr 02 Python
python实现自动发送报警监控邮件
Jun 21 Python
Python 中字符串拼接的多种方法
Jul 30 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
Python 多维List创建的问题小结
Jan 18 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
python3射线法判断点是否在多边形内
Jun 28 Python
Python3+Appium安装使用教程
Jul 05 Python
python文件排序的方法总结
Sep 13 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
python matlab库简单用法讲解
Dec 31 Python
Python使用pymysql小技巧
Jun 04 #Python
Python常见异常分类与处理方法
Jun 04 #Python
Python实现Linux的find命令实例分享
Jun 04 #Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 #Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 #Python
python snownlp情感分析简易demo(分享)
Jun 04 #Python
Python 调用Java实例详解
Jun 02 #Python
You might like
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
生产内勤岗位职责
2013/12/07 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
公司合并协议书范本
2014/09/30 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
服务器nginx权限被拒绝解决案例
2022/09/23 Servers