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 encode和decode的妙用
Sep 02 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
python常见排序算法基础教程
Apr 13 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python如何实时获取tcpdump输出
Sep 16 Python
python中HTMLParser模块知识点总结
Jan 25 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
第五节--克隆
2006/11/16 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
javascript常用的设计模式
2017/02/09 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
简单讲解Python中的闭包
2015/08/11 Python
python去掉行尾的换行符方法
2017/01/04 Python
Django中create和save方法的不同
2019/08/13 Python
Pytorch之Variable的用法
2019/12/31 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
解决c++调用python中文乱码问题
2020/07/29 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
业务主管岗位职责范本
2013/12/25 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
校长四风对照检查材料
2014/09/27 职场文书
党支部半年考察意见
2015/06/01 职场文书
勤俭节约主题班会
2015/08/13 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android