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创建日历实例
Aug 21 Python
Python验证码识别的方法
Jul 10 Python
对python程序内存泄漏调试的记录
Jun 11 Python
django 将model转换为字典的方法示例
Oct 16 Python
Django restframework 源码分析之认证详解
Feb 22 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
Python安装selenium包详细过程
Jul 23 Python
在django admin中添加自定义视图的例子
Jul 26 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
Python模拟键盘输入自动登录TGP
Nov 27 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
基于mysql的论坛(7)
2006/10/09 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
PHP面试题附答案
2015/11/28 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
建筑班组长岗位职责
2014/01/02 职场文书
总账会计岗位职责
2014/03/13 职场文书
情人节寄语大全
2014/04/11 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
bat批处理之字符串操作的实现
2022/03/16 Python
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android