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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python修改注册表终止360进程实例
Oct 13 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Python解惑之True和False详解
Apr 24 Python
Python实现简单http服务器
Apr 12 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
python制作填词游戏步骤详解
May 05 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
python基于Kivy写一个图形桌面时钟程序
Jan 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
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
Python中使用不同编码读写txt文件详解
2015/05/28 Python
用python处理MS Word的实例讲解
2018/05/08 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
Django密码系统实现过程详解
2019/07/19 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
篮球社团活动总结
2014/06/27 职场文书
授权委托书
2014/09/17 职场文书
导游词之神仙居景区
2019/11/15 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
python前后端自定义分页器
2022/04/13 Python