排序算法—选择排序算法分析与实现(Python)
2015-12-23 12:53
531 查看
December 23, 2015 12:31 PM
思想
选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。不过条条大路通罗马,两者的目的是一样的。
简单排序处理流程:
( 1 )从待排序序列中,找到关键字最小的元素;
( 2 )如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
( 3 )从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 )、( 2 )步,直到排序结束。
运行结果:
思想
选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。不过条条大路通罗马,两者的目的是一样的。
简单排序处理流程:
( 1 )从待排序序列中,找到关键字最小的元素;
( 2 )如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
( 3 )从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 )、( 2 )步,直到排序结束。
[code]#SeleteSort.py #王渊 #2015.12.21 #Email:wyxidian@gmail.com from pylab import * def SeleteSort(data): length = data.__len__() #获取数据长度 idx = True #标记依次遍历是否有数据交换,如果没有,排序完成 for i in range(length): idx = i for j in range(i,length): if(data[j]<data[idx]): #如果当前值小于下一个值,记录索引 idx = j data[i],data[idx] = data[idx],data[i] #交换顺序,一次交换 return data data = array([48,1,16,62,73,88,24,59,99,0,35]) print("The original data is : ", data) data = SeleteSort(data) print("The result of sorted data is : ", data)
运行结果:
[code]The original data is : [48 1 16 62 73 88 24 59 99 0 35] The result of sorted data is : [ 0 1 16 24 35 48 59 62 73 88 99]
相关文章推荐
- Python 的 Socket 编程教程
- python 以面向对象的方式创建线程 实现售票系统
- Python爬虫-scrapy框架简单应用
- python脚本处理文本时遇到的字符问题:UnicodeDecodeError: " " codec can't decode byte
- python splinter
- Python序列的方法(转)
- python之单例设计模式
- Python 中string和unicode的区别
- Spark处理Json格式数据(Python)
- python 深copy和浅copy
- Python 的Logging模块
- python之反射
- python文件操作
- 异步SocketServer服务器
- python获取window下网卡流量的函数
- 转载——最近百度云盘不提供搜索,闲来无事,玩玩python爬虫,爬一下百度云盘的资源
- Python操作符重载总结&列表模型
- Python中机器学习库scikit-learn的安装
- windows使用python调用wget批处理下载数据
- Python资源