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中使用base64模块处理字符编码的教程
Apr 28 Python
python实现清屏的方法
Apr 30 Python
python计算一个序列的平均值的方法
Jul 11 Python
开始着手第一个Django项目
Jul 15 Python
Python实现包含min函数的栈
Apr 29 Python
python正则分析nginx的访问日志
Jan 17 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
Django 实现图片上传和显示过程详解
Jul 18 Python
python区分不同数据类型的方法
Oct 14 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
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+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python实现爬虫下载漫画示例
2014/02/16 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python中如何写类
2020/06/29 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python