文章目录

  • 简介
  • 基数排序的例子
  • 基数排序的java代码实现
  • 基数排序的时间复杂度

简介

之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。

而解决大范围的元素排序的办法就是基数排序。

基数排序的例子

什么是基数排序呢?

考虑一下,虽然我们不能直接将所有范围内的数字都使用count数组进行排序,但是我们可以考虑按数字的位数来进行n轮count排序,每一轮都只对数字的某一位进行排序。

最终仍然可以得到结果,并且还可以摆脱count数组大小的限制,这就是基数排序。

假如我们现在数组的元素是:1221, 15, 20, 3681, 277, 5420, 71, 1522, 4793。

先看动画,看下最直观的基数排序的过程:

在上面的例子中,我们先对个位进行count排序,然后对十位进行count排序,然后是百位和千位。

最后生成最终的排序结果。

基数排序的java代码实现

因为基数排序实际上是分别按位数的count排序。所以我

看动画学算法之:排序-基数排序相关推荐

  1. 冒泡排序java代码_看动画学算法之:排序冒泡排序

    点击上方的蓝字关注我吧 程序那些事 简介 排序可能是所有的算法中最最基础和最最常用的了.排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序. 排序算法有很多种,每个都有 ...

  2. 看动画学算法之:排序-count排序

    文章目录 简介 count排序的例子 count排序的java实现 count排序的第二种方法 count排序的时间复杂度 简介 今天我们介绍一种不需要作比较就能排序的算法:count排序. coun ...

  3. 看动画学算法之:排序-归并排序

    文章目录 简介 归并排序的例子 归并排序算法思想 归并排序的java实现 归并排序的时间复杂度 简介 归并排序简称Merge sort是一种递归思想的排序算法.这个算法的思路就是将要排序的数组分成很多 ...

  4. 看动画学算法之:排序-插入排序

    文章目录 简介 插入排序的例子 插入排序的java程序 插入排序的时间复杂度 简介 插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组. 这个算法就叫做插入排序. 插入排序 ...

  5. 看动画学算法之:排序-冒泡排序

    文章目录 简介 冒泡排序的原理 冒泡排序算法的java实现 冒泡算法的第一次改进 冒泡算法的第二次改进 冒泡排序的时间复杂度 简介 排序可能是所有的算法中最最基础和最最常用的了.排序是一个非常经典的问 ...

  6. 看动画学算法之:排序-快速排序

    文章目录 简介 快速排序的例子 快速排序的java代码实现 随机快速排序的java实现 快速排序的时间复杂度 简介 快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排 ...

  7. 看动画学算法之:排序-选择排序

    文章目录 简介 选择排序的例子 选择排序的java代码实现 选择排序的第二种java实现 选择排序的时间复杂度 简介 选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交 ...

  8. 如何快速找出找出两个数组中的_看动画学算法之:排序-快速排序

    简介:快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并. 而快速排序虽然也是拆分,但是拆分之后的操 ...

  9. 看动画学算法之:二叉搜索树BST

    文章目录 简介 BST的基本性质 BST的构建 BST的搜索 BST的插入 BST的删除 看动画学算法之:二叉搜索树BST 简介 树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的 ...

最新文章

  1. python文件打不开 环境变量错误_【图片】[求助]cmd用环境变量突然打不开文件【python吧】_百度贴吧...
  2. STM32串口的使用(原理、结构体、库函数、串口发送字符(串)、重定向printf串口发送、串口中断接收控制灯)
  3. leetcode343. 整数拆分(动态规划)
  4. uint8_t / uint16_t / uint32_t /uint64_t 的简单介绍
  5. python 基础 集合
  6. Namenode主节点停止报错 Error: flush failed for required journal
  7. winform等待窗口之最简单使用线程实现loading
  8. Linux下安装JDK常用命令
  9. java json解析(转)
  10. 计算机特殊的标点符号教案,在电脑上怎么输入比较特殊的标点符号?
  11. element ui自定义图标
  12. 时下最热门的五款微信编辑器使用评测
  13. 计算机中信息的表示与存储教案,计算机基础教案2--1.2信息的表示与存储.doc
  14. 【读书笔记】赞成功利主义的学习
  15. 网上看到的星际制图技巧,有些反作弊的方法还是可以借鉴的
  16. 如果今天是生命里的最后一天你想做点啥
  17. 51 nod 1069 Nim游戏
  18. 零基础多图详解图神经网络(GNN/GCN)【论文精读】
  19. GBase 8c 数据导入-错误处理
  20. 推荐一个外文图书专著下载网站

热门文章

  1. POJ1265(Pick定理的应用)
  2. 模拟赛-20190114-新魔法(distance)
  3. 利用ida对程序的静态链接库进行处理
  4. PyCairo 中的变换
  5. 接入 SDK 结果翻车了?了解 SDK 的那些事
  6. Python中变量的作用域?(变量查找顺序)
  7. CentOS报错:“Could not resolve host: mirrorlist.centos.org; Unknown error“
  8. 摊牌了,我 HTTP 功底贼好!
  9. 【线上分享】如虎添翼,边缘计算在媒体性能与安全上的实现
  10. AMD收购Xilinx、Zoom为全体用户提供端到端加密、Facebook云游戏、苹果搜索引擎等|Decode the Week...