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写的ARP攻击代码实例
Jun 04 Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python实现矩阵乘法的方法
Jun 28 Python
CentOS6.5设置Django开发环境
Oct 13 Python
python如何爬取个性签名
Jun 19 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
django+mysql的使用示例
Nov 23 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
Python sys模块常用方法解析
Feb 20 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 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
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
理解javascript模块化
2016/03/28 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
跟老齐学Python之for循环语句
2014/10/02 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
python使用Tesseract库识别验证
2018/03/21 Python
python 实现A*算法的示例代码
2018/08/13 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
实习生的自我评价
2014/01/08 职场文书
个人作风剖析材料
2014/02/02 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
安全宣传标语
2014/06/10 职场文书
快递员岗位职责
2014/09/12 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
纪录片信仰观后感
2015/06/08 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书