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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
Python中新式类与经典类的区别详析
Jul 10 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
Python阶乘求和的代码详解
Feb 14 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
Numpy数组的广播机制的实现
Nov 03 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 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文件读写操作之文件读取方法详解
2011/01/13 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
ReactNative实现Toast的示例
2017/12/31 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
python实现单链表的方法示例
2019/09/03 Python
Python:slice与indices的用法
2019/11/25 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
公司董事长职责
2013/12/12 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript