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的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
python制作抖音代码舞
Apr 07 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
使用python实现对元素的长截图功能
Nov 14 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python实现图片九宫格分割的示例
Apr 25 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
Django验证码的生成与使用示例
2017/05/20 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
python语言是免费还是收费的?
2020/06/15 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
女娲补天教学反思
2014/02/05 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
党员教师一句话承诺
2014/05/30 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
地道战观后感400字
2015/06/04 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
python_tkinter事件类型详情
2022/03/20 Python
python字符串的一些常见实用操作
2022/04/06 Python