Python排序算法之选择排序定义与用法示例


Posted in Python onApril 29, 2018

本文实例讲述了Python排序算法之选择排序定义与用法。分享给大家供大家参考,具体如下:

选择排序

选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):

1. 选择一个基准球

2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换

3. 第一轮过后获得最小的球

4. 在挑一个基准球,执行相同的动作得到次小的球

5. 继续执行4,直到排序好

时间复杂度:O(n^2).  需要进行的比较次数为第一轮 n-1,n-2....1, 总的比较次数为 n*(n-1)/2

直接上代码:

def selectedSort(myList):
  #获取list的长度
  length = len(myList)
  #一共进行多少轮比较
  for i in range(0,length-1):
    #默认设置最小值得index为当前值
    smallest = i
    #用当先最小index的值分别与后面的值进行比较,以便获取最小index
    for j in range(i+1,length):
      #如果找到比当前值小的index,则进行两值交换
      if myList[j]<myList[smallest]:
        tmp = myList[j]
        myList[j] = myList[smallest]
        myList[smallest]=tmp
    #打印每一轮比较好的列表
    print("Round ",i,": ",myList)
myList = [1,4,5,0,6]
print("Selected Sort: ")
selectedSort(myList)

执行结果:

Python排序算法之选择排序定义与用法示例

Python 相关文章推荐
python 获取本机ip地址的两个方法
Feb 25 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Python 3实战爬虫之爬取京东图书的图片详解
Oct 09 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
Python换行与不换行的输出实例
Feb 19 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Python实现的直接插入排序算法示例
Apr 29 #Python
Python实现的堆排序算法示例
Apr 29 #Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 #Python
分享一下Python数据分析常用的8款工具
Apr 29 #Python
Python随机函数random()使用方法小结
Apr 29 #Python
Python中py文件引用另一个py文件变量的方法
Apr 29 #Python
python实现类之间的方法互相调用
Apr 29 #Python
You might like
投票管理程序
2006/10/09 PHP
优化PHP程序的方法小结
2012/02/23 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python Socket编程入门教程
2014/07/11 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
python global关键字的用法详解
2019/09/05 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
股份转让协议书
2014/04/12 职场文书
求职信怎么写范文
2014/05/26 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS