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 相关文章推荐
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
python通过smpt发送邮件的方法
Apr 30 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
python实现文本文件合并
Dec 29 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Python中的__init__作用是什么
Jun 09 Python
python中的装饰器该如何使用
Jun 18 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 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 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
PHP简单日历实现方法
2016/07/20 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
原生js调用json方法总结
2018/02/22 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
python 统计代码行数简单实例
2017/05/04 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python实现验证码识别
2020/06/15 Python
党员评议思想汇报
2014/10/08 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
2014年统战工作总结
2014/12/09 职场文书
茶花女读书笔记
2015/06/29 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
python实现大文本文件分割成多个小文件
2021/04/20 Python