Python实现的选择排序算法原理与用法实例分析


Posted in Python onNovember 22, 2017

本文实例讲述了Python实现的选择排序算法。分享给大家供大家参考,具体如下:

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。

具体实现代码如下:

#-*- coding: UTF-8 -*-
import numpy as np
def SelectSort(a):
  for i in xrange(0,a.size):
    min = a[i]
    p = i
    for j in xrange(i+1,a.size ):
      if min > a[j]:
        min = a[j]
        p = j
    if p != i:
      a[i], a[p] = a[p], a[i]
if __name__ == '__main__':
  a = np.random.randint(0, 10, size = 10)
  print "Before sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"
  SelectSort(a)
  print "After sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"

运行结果:

Python实现的选择排序算法原理与用法实例分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python中使用序列的方法
Aug 03 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
python实现数据图表
Jul 29 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python中的 enum 模块源码详析
Jan 09 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
python中68个内置函数的总结与介绍
Feb 24 Python
Python实现简单的猜单词小游戏
Oct 28 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 #Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 #Python
python不换行之end=与逗号的意思及用途
Nov 21 #Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 #Python
pycharm远程调试openstack代码
Nov 21 #Python
Pycharm远程调试openstack的方法
Nov 21 #Python
pycharm远程调试openstack的图文教程
Nov 21 #Python
You might like
Zerg基本策略
2020/03/14 星际争霸
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
Python制作Windows系统服务
2017/03/25 Python
python机器学习之神经网络(二)
2017/12/20 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
干部下基层实施方案
2014/03/14 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
护士辞职信怎么写
2015/02/27 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python