科活中心有趣的算法——选择排序插入排序

Posted 克拉玛依教育

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了科活中心有趣的算法——选择排序插入排序相关的知识,希望对你有一定的参考价值。

有趣的算法——选择排序、插入排序





在前面我们认识什么是算法,并且学习了比较常见的冒泡排序算法,在最后我们发现了冒泡排序虽然简单但是也会有很多缺陷,比如运行速度比较慢,冒泡有一个最大的问题就是这种算法不管你有序还是没序,算法都会将你给定的数据循环比较了。

今天我们就来学习另外两种比较简单容易理解的排序算法——选择排序与插入排序。

选择排序 ·



选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

【科活中心】有趣的算法——选择排序、插入排序

动画演示:

【科活中心】有趣的算法——选择排序、插入排序

举例如果排序的数字为3、11、5、12、2、20、18

如果现在我们使用选择排序来将上面那一组数据进行升序排列,那么我们需要遍历这组数,每一次遍历完成找到其中未排序数组中最小的一个数字并将其放在指定的次数位。

绿色为已经排序完成的,红色为本次遍历中找到最小的

第一次遍历:

3、11、5、12、2、20、18(2为最小值)——2、3、11、5、12、20、18

第二次遍历:

23、11、5、12、20、18(3为最小值)——2、3、11、5、12、20、18

第三次遍历:

2、3、11、5、12、20、18(5为最小值)——2、3、5、11、12、20、18

第四次遍历:

2、3、5、11、12、20、18(11为最小值)——2、3、5、11、12、20、18

第五次遍历:

2、3、5、11、12、20、18(12为最小值)——2、3、5、11、12、20、18

第六次遍历:

2、3、5、11、12、20、18(18为最小值)——2、3、5、11、12、18、20

排序完成

2、3、5、11、12、18、20

插入排序 ·



一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。

将第一个待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

【科活中心】有趣的算法——选择排序、插入排序

我们继续以上面那组数举例分解下整个插入排序过程。

3、11、5、12、2、20、18

         表示是有序的          表示无序


  • 默认将第一个元素看做有序的

    311、5、12、2、20、18

  • 有序数列插入11时对比与3的大小11>3,则将11插入到3的右侧

    3、11 5、12、2、20、18

  •  有序数列插入5时对比与11的大小5<11,再3比较,最终确定插入到3与11中间

    3、5、1112、2、20、18

  • 有序数列插入12时对比与11的大小12>11,则将12插入到11的右侧

    3、5、11、122、20、18

  • 有序数列插入2时对比与12的大小2<12,再与11、5、3对比最终确定将2插入3的左侧

    2、3、5、11、1220、18

  •  有序数列插入20时对比与12的大小20>12,则将20插入到12的左侧

    2、3、5、11、12、2018

  • 有序数列插入18时对比与20的大小18<20,再与12、11、5、3、2分别比较,最终确定插入12与20中间

  • 排序完成

    2、3、5、11、12、18、20


上面就是我们选择排序与插入排序的整个过程,结合上次学习的冒泡排序,聪明的你思考一下这三种排序算法的区别,分析下各自的优缺点。




【科活中心】有趣的算法——选择排序、插入排序

END

【科活中心】有趣的算法——选择排序、插入排序


编辑:“克拉玛依教育”微信公众平台编辑部

          薛雅元  田韵

来源:“克拉玛依市青少年科技活动中心”微信公众平台

         图文/张世钰  部分来自网络  编辑/葛钰

         审核/董庆明 黄小雷 徐红


【科活中心】有趣的算法——选择排序、插入排序

精彩回顾

【科活中心】有趣的算法——选择排序、插入排序







扫码关注
更多精彩

以上是关于科活中心有趣的算法——选择排序插入排序的主要内容,如果未能解决你的问题,请参考以下文章

算法 | 排序算法图形化比较:快速排序插入排序选择排序冒泡排序

图形化排序算法比较:快速排序插入排序选择排序冒泡排序

排序算法专题之选择排序

有趣的算法---快速排序

算法与数据结构快速排序算法

一个有趣的排序算法—睡眠排序