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序列操作之进阶篇
Dec 08 Python
Python使用functools实现注解同步方法
Feb 06 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
django使用LDAP验证的方法示例
Dec 10 Python
详解python中递归函数
Apr 16 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
python集合能干吗
Jul 19 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
Django正则URL匹配实现流程解析
Nov 13 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/09/26 PHP
php存储过程调用实例代码
2013/02/03 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
python实现代码行数统计示例分享
2014/02/10 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
django中的数据库迁移的实现
2020/03/16 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
毕业自我鉴定范文
2013/11/06 职场文书
传媒专业推荐信范文
2013/11/23 职场文书
学习党课思想汇报
2013/12/29 职场文书
大学军训感言
2014/01/10 职场文书
七年级地理教学计划
2015/01/22 职场文书
污水处理保证书
2015/05/09 职场文书
遗嘱范文
2015/08/07 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript