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安装第三方库的3种方法
Jun 21 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
python3+PyQt5泛型委托详解
Apr 24 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
jupyter notebook的安装与使用详解
May 18 Python
详解python with 上下文管理器
Sep 02 Python
Python网络编程之ZeroMQ知识总结
Apr 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
js文字横向滚动特效
2015/11/11 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
python3设计模式之简单工厂模式
2017/10/17 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Python中Selenium库使用教程详解
2020/07/23 Python
python 调整图片亮度的示例
2020/12/03 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
免税水晶:Duty Free Crystal
2019/05/13 全球购物
机关党员进社区活动总结
2014/07/05 职场文书
毕业生政审意见范文
2015/06/04 职场文书
学校少先队工作总结
2015/08/12 职场文书
DSP接收机前端设想
2022/04/05 无线电