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中不同进制的语法及转换方法分析
Jul 27 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
Python unittest模块用法实例分析
May 25 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
python3学生名片管理v2.0版
Nov 29 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
python的re模块使用方法详解
Jul 26 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
python字符串判断密码强弱
Mar 18 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
如何使用python写截屏小工具
Sep 29 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
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
jquery ready()的几种实现方法小结
2010/06/18 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python xpath获取页面注释的方法
2019/01/14 Python
python读取ini配置文件过程示范
2019/12/23 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
全球性的女装店:storets
2019/06/12 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
公司租房协议书
2014/10/14 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
初中同学会致辞
2015/08/01 职场文书