可视化基数排序

Posted 多米学算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化基数排序相关的知识,希望对你有一定的参考价值。

前言

可视化基数排序可视化基数排序可视化基数排序可视化基数排序

概念介绍

概念介绍

  • 基数排序是非比较型整数排序算法

  • 它将整数按位数切割成不同的数字,然后按照每个位数分别比较

原理讲解

我们以[12 8 3 24 21 36 11 15 32 9]这个序列为例说明基数排序算法的实现原理

  1. 当未开始排序时,此时效果如下图


    可视化基数排序

  2. 我们建立下标为0-9的十个数组用于存放数据,此时效果如下图


    可视化基数排序

  3. 首先我们以未排序序列个位上的数字为基数。开始遍历,将第一个元素12,放到下标为2的数组中。此时效果如下图


    可视化基数排序

  4. 继续遍历,将第二个元素8,放到下标为8的数组中。此时效果如下图


    可视化基数排序

  5. 继续遍历,将第三个元素3,放到下标为3的数组中。此时效果如下图


    可视化基数排序

  6. 继续遍历,将第四个元素24,放到下标为4的数组中。此时效果如下图


    可视化基数排序

  7. 继续遍历,将第五个元素21,放到下标为1的数组中。此时效果如下图


    可视化基数排序

  8. 继续遍历,将第六个元素36,放到下标为6的数组中。此时效果如下图


    可视化基数排序

  9. 继续遍历,将第七个元素11,放到下标为1的数组中。此时效果如下图


    可视化基数排序

  10. 继续遍历,将第八个元素15,放到下标为5的数组中。此时效果如下图


    可视化基数排序

  11. 继续遍历,将第九个元素32,放到下标为2的数组中。此时效果如下图


    可视化基数排序

  12. 继续遍历,将第十个元素9,放到下标为9的数组中。此时效果如下图


    可视化基数排序

  13. 至此第一次遍历结束,此时效果如下图


    可视化基数排序

  14. 然后我们将0-9下标中数组存的数据进行输出。开始输出下标为0的数组中的元素,此时效果如下图


    可视化基数排序

  15. 继续输出下标为1的数组中的元素,此时效果如下图


    可视化基数排序

  16. 继续输出下标为2的数组中的元素,此时效果如下图


    可视化基数排序

  17. 继续输出下标为3的数组中的元素,此时效果如下图


    可视化基数排序

  18. 继续输出下标为4的数组中的元素,此时效果如下图


    可视化基数排序

  19. 继续输出下标为5的数组中的元素,此时效果如下图


    可视化基数排序

  20. 继续输出下标为6的数组中的元素,此时效果如下图


    可视化基数排序

  21. 继续输出下标为7的数组中的元素,此时效果如下图


    可视化基数排序

  22. 继续输出下标为8的数组中的元素,此时效果如下图


    可视化基数排序

  23. 继续输出下标为9的数组中的元素,此时效果如下图


    可视化基数排序

  24. 至此,第一次输出介绍,此时效果如下图


    可视化基数排序


到这个位置以个位数数字为基数的遍历完成


  1. 然后我们以未排序序列十位上的数字为基数。开始遍历(中间的过程和以个位上数字为基数时相同)。此时最终效果如下图


    可视化基数排序

  2. 遍历结束后,开始按照下标从0-9的顺序输出数组中的数据。开始输出下标为0的数组中的元素,此时效果如下图


    可视化基数排序

  3. 继续输出下标为1的数组中的元素,此时效果如下图


    可视化基数排序

  4. 输出下标为2的数组中的元素,此时效果如下图


    可视化基数排序

  5. 输出下标为3的数组中的元素,此时效果如下图


    可视化基数排序

  6. 至此,第二次输出介绍,此时效果如下图


    可视化基数排序


    可视化基数排序

    可视化基数排序


到这个位置整个基数排序完成完成


时间复杂度


  • 基数排序的最好时间复杂度为O(K*N);其中N为待排序元素个数,K为待排序元素最大值

空间复杂度

  • 基数排序的空间复杂度为O(K+N);其中N为待排序元素个数,K为待排序元素最大值

算法优缺点

  • 优点:稳定;速度快

  • 缺点:数据量大时,需要空间较大

效果展示

说明

以上是关于可视化基数排序的主要内容,如果未能解决你的问题,请参考以下文章

学习数据结构笔记====>不同的排序算法(Sort Algorithm)[冒泡,选择,插入,快速,希尔,基数,归并]

❤️数据结构入门❤️(4 - 7)- 基数排序

基数排序与基数排序

基数排序:基数排序中的“组”是啥意思?

基数排序和更改基数

排序-基数排序