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之wxPython应用实例
Sep 28 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python端口扫描简单程序
Nov 10 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP文件操作方法汇总
2015/07/01 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
Prototype Class对象学习
2009/07/19 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
python实现简单http服务器功能
2018/09/17 Python
Django websocket原理及功能实现代码
2020/11/14 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
高分子材料个人求职信范文
2013/09/25 职场文书
3的组成教学反思
2014/04/30 职场文书
高一新生军训方案
2014/05/12 职场文书
节约能源标语
2014/06/17 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang
Python Pandas解析读写 CSV 文件
2022/04/11 Python