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 19 Python
python实现上传下载文件功能
Nov 19 Python
python使用super()出现错误解决办法
Aug 14 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 Python
Python使用GitPython操作Git版本库的方法
Feb 29 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 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微信公众平台开发之获取用户基本信息
2015/08/17 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
js几个验证函数代码
2010/03/25 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python代码编写计算器小程序
2020/03/30 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
小学岗位竞聘方案
2014/01/22 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
企业理念标语
2014/06/09 职场文书
搞笑结婚保证书
2015/05/08 职场文书