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中__init__.py文件的作用详解
Sep 18 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
pytorch中的transforms模块实例详解
Dec 31 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Python自带的IDE在哪里
Jul 01 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
python 实现控制鼠标键盘
Nov 27 Python
使用scrapy实现增量式爬取方式
Jun 21 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中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
python pdb调试方法分享
2014/01/21 Python
python遍历类中所有成员的方法
2015/03/18 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
校班主任推荐信范文
2013/12/03 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
社区平安建设方案
2014/05/25 职场文书
学校读书活动总结
2014/06/30 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
机动车登记业务委托书
2014/10/08 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
深入理解go slice结构
2021/09/15 Golang
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js