推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 喵了个喵mm > 一种算法,两种实现-选择排序

一种算法,两种实现-选择排序

喵了个喵mm 2021-04-08

选择排序

一种算法,两种实现-选择排序


排序是比较常用的算法,其实有很多种实现,比如冒泡排序,选择排序,归并排序,希尔排序,快速排序等,今天介绍使用Scratch与python语言实现选择排序算法。

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。


一种算法,两种实现-选择排序

动图演示


一种算法,两种实现-选择排序

一种算法,两种实现-选择排序


一种算法,两种实现-选择排序


两种实现算法中,共同属性都包涵:

控制排序轮数的变量i;

控制每轮循环中比较次数的变量j;

记录每轮循环中最小数值的位置的变量minindex;


一种算法,两种实现-选择排序

Scratch实现

一种算法,两种实现-选择排序

首先看下我们的界面,为了方便理解,将所有变量均显示于舞台上:

一种算法,两种实现-选择排序


一种算法,两种实现-选择排序


为了不破坏原列表数据,排序前首先使用重复控件对原列表进行了备份处理,备份后的数据用于后面的排序。在接下来的排序算法中也会使用相同的方法哦!

一种算法,两种实现-选择排序


Scratch使用时,对于学过python、C++等其他编程语言的同学来说可能会有一些疑惑,因为生成的列表下标值从1起始。


一种算法,两种实现-选择排序


最后看下整个排序过程吧:



一种算法,两种实现-选择排序


一种算法,两种实现-选择排序

Python实现


相同的原理,Python实现起来倒是显得简约、直观:




1

总结

表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。





版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《一种算法,两种实现-选择排序》的版权归原作者「喵了个喵mm」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注喵了个喵mm微信公众号

喵了个喵mm微信公众号:gh_714173ac5978

喵了个喵mm

手机扫描上方二维码即可关注喵了个喵mm微信公众号

喵了个喵mm最新文章

精品公众号随机推荐