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中使用PDB库调试程序
Apr 05 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
python去掉行尾的换行符方法
Jan 04 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
浅谈Python type的使用
Nov 19 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
python实现批量移动文件
Apr 05 Python
Python软件包安装的三种常见方法
Jul 07 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 中的输出缓冲
2006/12/21 PHP
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
Symfony查询方法实例小结
2017/06/28 PHP
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Python守护进程用法实例分析
2015/06/04 Python
用Eclipse写python程序
2018/02/10 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
如何将json数据转换为python数据
2020/09/04 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
英语硕士生求职简历的自我评价
2013/10/15 职场文书
水利水电专业自荐信
2014/07/08 职场文书
教师四风问题整改措施
2014/09/25 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
实习证明格式范文
2015/06/16 职场文书
捐书仪式主持词
2015/07/04 职场文书
禁毒主题班会教案
2015/08/14 职场文书