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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
python进阶教程之模块(module)介绍
Aug 30 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
Python实现统计英文单词个数及字符串分割代码
May 28 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
基于python图像处理API的使用示例
Apr 03 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 28 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+DBM的同学录程序(3)
2006/10/09 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
浅析Prototype的模板类 Template
2011/12/07 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
react build 后打包发布总结
2018/08/24 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
Python实现的石头剪子布代码分享
2014/08/22 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
小学生演讲稿
2014/01/12 职场文书
公司司机岗位职责
2014/02/07 职场文书
结对共建协议书
2014/08/20 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
初中毕业生感言
2015/07/31 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android