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使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
详解 Python 读写XML文件的实例
Aug 02 Python
Python冲顶大会 快来答题!
Jan 17 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
Python爬取成语接龙类网站
Oct 19 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
Pycharm配置autopep8实现流程解析
Nov 28 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实现多进程并行执行脚本
2013/06/18 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python 读写中文json的实例详解
2017/10/29 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python numpy 按行归一化的实例
2019/01/21 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python中with用法讲解
2020/02/07 Python
pyspark 随机森林的实现
2020/04/24 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
平面设计师的工作职责
2013/11/21 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
不同意离婚答辩状
2015/05/22 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python