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的设计模式编程入门指南
Apr 02 Python
Python中datetime常用时间处理方法
Jun 15 Python
windows下python连接oracle数据库
Jun 07 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
Nov 06 Python
python实现淘宝秒杀脚本
Jun 23 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python中的colorlog库使用详解
Jul 05 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
超级实用的8个Python列表技巧
Aug 24 Python
python opencv实现简易画图板
Aug 27 Python
python time()的实例用法
Nov 03 Python
Python列表的深复制和浅复制示例详解
Feb 12 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完整的日历类(CLASS)
2006/11/27 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php常量详细解析
2015/10/27 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
python脚本爬取字体文件的实现方法
2017/04/29 Python
分分钟入门python语言
2018/03/20 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
如何基于线程池提升request模块效率
2020/04/18 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
煤矿安全协议书
2014/08/20 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技