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写王者荣耀刷金币脚本
Dec 21 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python处理document文档保留原样式
Sep 23 Python
python的slice notation的特殊用法详解
Dec 27 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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
smarty的保留变量问题
2008/10/23 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
js仿360开机效果
2019/12/26 Javascript
Quasar Input:type="number" 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
买房委托公证书
2014/04/08 职场文书
连锁超市项目计划书
2014/09/15 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
2016年寒假家长评语
2015/10/10 职场文书
工商局调档介绍信
2015/10/22 职场文书
python process模块的使用简介
2021/05/14 Python
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
springboot临时文件存储目录配置方式
2021/07/01 Java/Android