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开发常用的一些开源Package分享
Feb 14 Python
python uuid模块使用实例
Apr 08 Python
Python功能键的读取方法
May 28 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
python+Splinter实现12306抢票功能
Sep 25 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
python3 深浅copy对比详解
Aug 12 Python
Python3分析处理声音数据的例子
Aug 27 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
浅析python内置模块collections
Nov 15 Python
python实现简单文件读写函数
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 insert语法详解
2008/06/07 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
PHP常用技巧汇总
2016/03/04 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
Python实现的多线程http压力测试代码
2017/02/08 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
python requests库的使用
2021/01/06 Python
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
任命书怎么写
2014/06/04 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
2014个人年度工作总结
2014/12/15 职场文书
奖励申请报告范文
2015/05/15 职场文书
小学生手册家长意见
2015/06/03 职场文书
python数字类型和占位符详情
2022/03/13 Python
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL