美文网首页
动画 | 什么是选择排序?

动画 | 什么是选择排序?

作者: 我脱下短袖 | 来源:发表于2020-01-27 14:06 被阅读0次
简单选择排序属性
file

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

回顾一下上次快速排序的优化,减少不必要的交换,以后在解决过程中可以把符合条件的元素位置标记下来,因此可以定义一个标记变量,来标记本轮比较中最符合条件的元素,本轮结束时才进行最后一步的是否交换。

视频动画:简单选择排序

算法动画视频 地址

Code
file
Result

初始状态 [5, 1, 9, 3, 7, 4, 8, 6, 2]
下标0,1已交换[1, 5, 9, 3, 7, 4, 8, 6, 2]
下标1,8已交换[1, 2, 9, 3, 7, 4, 8, 6, 5]
下标2,3已交换[1, 2, 3, 9, 7, 4, 8, 6, 5]
下标3,5已交换[1, 2, 3, 4, 7, 9, 8, 6, 5]
下标4,8已交换[1, 2, 3, 4, 5, 9, 8, 6, 7]
下标5,7已交换[1, 2, 3, 4, 5, 6, 8, 9, 7]
下标6,8已交换[1, 2, 3, 4, 5, 6, 7, 9, 8]
下标7,8已交换[1, 2, 3, 4, 5, 6, 7, 8, 9]

喜欢本文的朋友,微信搜索「算法无遗策」公众号,收看更多精彩的算法动画文章

相关文章

  • 动画 | 什么是选择排序?

    简单选择排序属性 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序...

  • 动画 | 什么是计数排序?

    我们知道快速排序的时间复杂度期望值是O(nlogn),其中O(logn)是利用了二分法进行远距离比较和交换元素的位...

  • 动画 | 什么是希尔排序?

    希尔排序属性 上篇写的直接插入排序算法时间复杂度是O(n2),如果要令此排序算法的时间复杂度要低于O(n2),必须...

  • 动画 | 什么是堆排序?

    回顾一下我们学过的选择排序,在无序区找到一个最小(大)的元素需要比较n-1次,找到第二小的元素需要比较n-2次,直...

  • 动画 | 什么是桶排序?

    学过上一篇文章的计数排序之后,特别是归约化分治处理的计数排序(适用于较离散的非负整数序列)。计数排序的局限比较多,...

  • 选择排序

    什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的...

  • 在Object-C中学习排序算法

    选择排序 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n?) 的时间复杂度。所以用到它的...

  • 动画 | 什么是归并排序?

    归并排序的归并这两个字和递归没有关系,归并是将两个有序的数组归并成一个更大的有序数组,但整个排序算法是有可能跟递归...

  • 动画 | 什么是插入排序?

    插入排序 插入排序是比较简单也比较直接的一种排序算法。它是从一堆数据中取出一个数据并将它插入到已排序的数据中合适的...

  • 震惊!!JAVA中选择排序竟然是这样子的!

    说到选择排序,可能会想起冒泡排序。 冒泡排序和选择排序不禁会问它们有什么区别? 的确, 它们的基本思想是一样...

网友评论

      本文标题:动画 | 什么是选择排序?

      本文链接:https://www.haomeiwen.com/subject/tkcethtx.html