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使用django获取用户IP地址的方法
May 11 Python
Python多进程机制实例详解
Jul 02 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
python判断数字是否是超级素数幂
Sep 27 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
django重新生成数据库中的某张表方法
Aug 28 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
Python创建临时文件和文件夹
Aug 05 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 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
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
HTML上传控件取消选择
2013/03/06 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
node.js实现带进度条的多文件上传
2020/03/27 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
实现python版本的按任意键继续/退出
2016/09/26 Python
python修改字典键(key)的方法
2019/08/05 Python
Python读写压缩文件的方法
2020/07/30 Python
运行Python编写的程序方法实例
2020/10/21 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
工地质量标语
2014/06/12 职场文书
大跃进口号
2014/06/16 职场文书
2019财务转正述职报告
2019/06/27 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers