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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
python获取当前日期和时间的方法
Apr 30 Python
Python编程中归并排序算法的实现步骤详解
May 04 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
Python多进程并发与多线程并发编程实例总结
Feb 08 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
django fernet fields字段加密实践详解
Aug 12 Python
python生成器用法实例详解
Nov 22 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
用python制作个音乐下载器
Jan 30 Python
python通过新建环境安装tfx的问题
May 20 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 class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
javascript操作css属性
2013/12/30 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python识别验证码的实现示例
2020/09/30 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
毕业生物理教师求职信
2013/10/17 职场文书
在职人员函授期间自我评价分享
2013/11/08 职场文书
大学生新闻专业个人自我评价
2013/11/12 职场文书
中文系学生自荐信范文
2013/11/13 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
渡河少年教学反思
2014/02/12 职场文书
财务内勤岗位职责
2014/04/17 职场文书
青春无悔演讲稿
2014/05/08 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers