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 13 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
PyQt5组件读取参数的实例
Jun 25 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python with标签使用方法解析
Jan 17 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 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
NOT NULL 和NULL
2007/01/15 PHP
FleaPHP的安全设置方法
2008/09/15 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP 快速排序算法详解
2014/11/10 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
JS的get和set使用示例
2014/02/20 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
python两种注释用法的示例
2020/10/09 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
委托书的写法
2014/08/30 职场文书
五年级上册复习计划
2015/01/19 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python