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做文本按行去重的实现方法
Oct 19 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
使用python实现飞机大战游戏
Mar 23 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
python基于tkinter制作无损音乐下载工具
Mar 29 Python
浅谈Python numpy创建空数组的问题
May 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
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
做网页的一些技巧
2007/02/01 Javascript
javascript document.images实例
2008/05/27 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
采用call方式实现js继承
2014/05/20 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
python发布模块的步骤分享
2014/02/21 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python科学计算之Pandas详解
2017/01/15 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python读取图片任意范围区域
2019/01/23 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
深入了解python中元类的相关知识
2019/08/29 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
物流专员岗位职责
2014/02/17 职场文书
市场营销专业自荐书
2014/06/10 职场文书
消防演习通知
2015/04/25 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
python如何做代码性能分析
2021/04/26 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android