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之玩转字符串(2)
Sep 14 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
python的scipy实现插值的示例代码
Nov 12 Python
Django接收照片储存文件的实例代码
Mar 07 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
Django 用户认证Auth组件的使用
Nov 30 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
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
python删除某个字符
2018/03/19 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
金融专业个人求职信
2013/09/22 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
优秀求职信
2014/05/29 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
中秋节祝酒词
2015/08/12 职场文书
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers