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在windows命令行下输出彩色文字的方法
Mar 19 Python
在Python的setuptools框架下生成egg的教程
Apr 13 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
Python实现常见的回文字符串算法
Nov 14 Python
python进阶之自定义可迭代的类
Aug 20 Python
PYcharm 激活方法(推荐)
Mar 23 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 Python
python 判断文件或文件夹是否存在
Mar 18 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
php分页函数完整实例代码
2014/09/22 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python 判断一个进程是否存在
2009/04/09 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
python 使用get_argument获取url query参数
2017/04/28 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
优秀毕业生自我鉴定
2014/01/19 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python