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 BeautifulSoup库抓取58手机维修信息
Nov 21 Python
web.py获取上传文件名的正确方法
Aug 26 Python
Python迭代器和生成器介绍
Mar 06 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Puppeteer使用示例详解
Jun 20 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
Python设计密码强度校验程序
Jul 30 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
Python unittest装饰器实现原理及代码
Sep 08 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利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
php阳历转农历优化版
2016/08/08 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
判断用户是否在线的代码
2011/03/05 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
nodeJS微信分享
2017/12/20 NodeJs
Javascript 之封装(Package)
2018/09/14 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
python模块restful使用方法实例
2013/12/10 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python DataFrame 取差集实例
2019/01/30 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python字典底层实现原理详解
2019/12/18 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
新闻记者实习自我鉴定
2013/09/19 职场文书
护士自荐信
2013/10/25 职场文书
实习生自我鉴定
2013/12/12 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
公司担保书范文
2014/05/21 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Go中的条件语句Switch示例详解
2021/08/23 Golang