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中的fabs()方法的使用
May 14 Python
Python中的rjust()方法使用详解
May 19 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
python ddt实现数据驱动
Mar 14 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
Django操作cookie的实现
May 26 Python
Keras多线程机制与flask多线程冲突的解决方案
May 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
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
php中的比较运算符详解
2013/10/28 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
js实现自定义路由
2017/02/04 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
初学Python函数的笔记整理
2015/04/07 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
python与字符编码问题
2019/05/24 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
python自动化发送邮件实例讲解
2021/01/04 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
家居装修公司创业计划书范文
2014/03/20 职场文书
岗位聘任协议书
2015/09/21 职场文书
Python绘制分类图的方法
2021/04/20 Python
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技