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中lambda与def用法对比实例分析
Apr 30 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
实践Vim配置python开发环境
Jul 02 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
python动态文本进度条的实例代码
Jan 22 Python
python十进制转二进制的详解
Feb 07 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
python和php哪个容易学
Jun 19 Python
python实现数字炸弹游戏程序
Jul 17 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 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实现aes加密类分享
2014/02/16 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
Python反射用法实例简析
2017/12/22 Python
python并发编程之线程实例解析
2017/12/27 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
python数组循环处理方法
2019/08/26 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
大学新生欢迎词
2014/01/10 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
通知函格式范文
2015/04/27 职场文书
历史博物馆观后感
2015/06/05 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript