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使用cookie库操保存cookie详解
Mar 03 Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 Python
python生成词云的实现方法(推荐)
Jun 13 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
Python脚本完成post接口测试的实例
Dec 17 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Django重置migrations文件的方法步骤
May 01 Python
对Python中画图时候的线类型详解
Jul 07 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
如何卸载python插件
Jul 08 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 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
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
跟老齐学Python之用while来循环
2014/10/02 Python
在python中安装basemap的教程
2018/09/20 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
管理工程专业求职信
2014/08/10 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
导游词之桂林山水
2019/09/20 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis