首页 / 算法 / 排序算法—————选择排序
排序算法—————选择排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了排序算法—————选择排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1847字,纯文字阅读大概需要3分钟。
内容图文
![排序算法—————选择排序](/upload/InfoBanner/zyjiaocheng/741/28d1fd001c1e4ac1b2f37be5975fbeef.jpg)
什么是选择排序呢?
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法
上面的呢是百度词条上的定义,但理解起来是什么样子呢?
如何理解选择排序?
其实选择排序顾名思义就是每一次选取数列中的一个值把它放到自己应该在的位置上
比如我们要将9,11,6,7,1,这个数列进行从小到大的排序,怎么做才能让这个数列中大的数字被选择走并安置在正确的位置上呢?
其实选择排序相对于其他排序算法是最好理解的一种,我们提前引入一个词叫做标记,在我们的筛选过程中我们把每次比较过程中的较小值标记出来但不进行交换用较小值与后面的值继续进行比较通过不断改变标记位置 将数列中最小值找到并标记出来最后将它放到第一个位置上,下次遍历数列是我们从他的下一个数字开始标记并遍历比较,从而将数列按照从小到大的顺序排好
我们的标记一开始在9开始循环
[9, 11, 6, 7, 1]
9和11比较比较后标记还是9没有变化继续比较
[9, 11, 6, 7, 1]
9和6比较后标记变为6但是数列不变
[9, 11, 6, 7, 1]
继续比较由于标记发生变化我们标记的6和7比较数列和标记都不变
[9, 11, 6, 7, 1]
继续比较6和1标记发生改变1被标记然后由于1是我们最后一个数字循环结束标记为被放到第一个位置
我们找出了列表中最小的元素1,接下来的遍历就从1的下一位开始找到
[1 , 11, 6, 7, 9]
1被我们放到了准确的位置上所以我们不需要对他进行任何操作了将它排除在外进行上述操作
[1, 11, 6, 7, 9]
[1 , 11, 6, 7, 9]
[1, 6, 11, 7, 9]
[1, 6 , 11, 7, 9]
[1, 6, 7, 11, 9]
[1, 6, 7, 11, 9]
随着越来越多的元素被放到准确的位置上我们就得到了完整的顺序数列
[1, 6, 7, 9, 11]
选择排序的python实现
#选择排序------
'''
顺序遍历数列找到最小值交换位置
选择排序的时间复杂度n**2
'''
list1=[9,11,6,7,1]
for i in range(0,len(list1)-1):
k=i#k作为遍历中记录最小值的标记
for j in range(i,len(list1)):
if list1[k]>=list1[j]:
k=j#比较大小使得标记永远指向最小值
list1[i],list1[k]=list1[k],list1[i]#交换最小值和当前遍历顺序位置把最小值放到正确位置上
print(list1)
内容总结
以上是互联网集市为您收集整理的排序算法—————选择排序全部内容,希望文章能够帮你解决排序算法—————选择排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。