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编程中线程的创建与锁的使用
Feb 28 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
python程序变成软件的实操方法
Jun 24 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
python构建指数平滑预测模型示例
Nov 21 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
教你利用python实现企业微信发送消息
May 23 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 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访问查询mysql数据的三种方法
2006/10/09 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP7常量数组用法分析
2016/09/26 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
JavaScript中的面向对象介绍
2012/06/30 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python去除文件中重复的行实例
2018/06/29 Python
替换python字典中的key值方法
2018/07/06 Python
python list转矩阵的实例讲解
2018/08/04 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
会计系个人求职信范文分享
2013/12/20 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
入股合作协议书
2014/10/12 职场文书
安全教育培训心得体会
2016/01/15 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers