收集一波十大算法动态图

作者: jack_rofer | 来源:发表于2019-12-05 16:04 被阅读0次

    前言:十大算法归类及对比图

    tips:无代码展示,请在后面参考链接自己找!!!

    十大算法分类图 十大算法对比图

    1.冒泡排序(Bubble Sort)(邻近对比 - 你行你上,no can't no...)

    冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。(相邻对比交换位置)

    冒泡排序动态图

    2.选择排序(Selection Sort)(选择最大或最小 - 最菜的出来)

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


    选择排序动态图

    3.插入排序(Insertion Sort)(未排序插已排序 - 插班生)

    插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。(将未排序的,在已排序中找到位置插进去)

    插入排序动态图

    4.希尔排序(Shell Sort)(插入排序升级版- 先分组再插入)

    希尔排序的核心在于间隔序列的设定。既可以提前设定好间隔序列,也可以动态的定义间隔序列。动态定义间隔序列的算法是《算法(第4版》的合著者Robert Sedgewick提出的。

    希尔排序动态图 希尔排序动态图

    图来源

    漫画:什么是希尔排序?

    5.归并排序(Merge Sort)(两两比后四人组排序,四四比后八人组排序。。- 比赛制)

     归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。


    归并排序动态图 归并排序动态图

    6.快速排序(Quick Sort)(冒泡排序的改进版)

    快速排序的基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 


    快速排序动态图 快速排序动态图

    漫画:什么是快速排序?(完整版)

    7.堆排序(Heap Sort)

    堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。


    堆排序动态图

    8.计数排序(Counting Sort)

    计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。


    计数排序动态图 计数排序动态图

    9.桶排序(Bucket Sort)

    桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排


    桶排序图解 桶排序动态图

    10.基数排序(Radix Sort)

    基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以是稳定的。

    基数排序动态图 基数排序动态图

    11.参考链接(代码可在链接中寻找)

    十大经典排序算法(动图演示)

    数据结构与算法系列--十大排序(附动态图解)

    十大经典排序算法动画,看我就够了!

    优雅的 JavaScript 排序算法(ES6)

    图解桶排序

    相关文章

      网友评论

        本文标题:收集一波十大算法动态图

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