基数排序

   基数排序就是先按照低位排序,然后收集排序后的结果,然后在按照高位排序,再收集排序结果,以此类推,直到最高位。

排序的过程演示:

代码演示:


import java.util.Arrays;public class RadixSort {public static void main(String[] args) {int[] arr = new int[]{1,3,69,45,23,76,67,789,645,32};radixSort(arr);System.out.println(Arrays.toString(arr));}private static void radixSort(int[] arr) {//先把数组中的最大数找出来看一共要比较几次int max = Integer.MIN_VALUE;for (int i = 0; i < arr.length; i++) {if (arr[i] > max){max = arr[i];}}//比较的次数String s = max+"";int maxlength = s.length();//存储临时数据的二维数组int[][] temp = new int[10][arr.length];//记录在temp中相应的数组中存放的元素的数量int[] counts = new int[arr.length];for (int i = 0,n = 1; i < maxlength; i++,n *= 10) {//取出每一个元素for (int j = 0; j < arr.length; j++) {//计算每个元素的余数int ys = arr[j]/n%10;//把当前遍历的元素放入临时数组中temp[ys][counts[ys]] = arr[j];//记录里面的数组的下标counts[ys]++;}int index = 0;//把临时数组的元素取出来,放进原数组中for (int k = 0; k < counts.length; k++) {if (counts[k] != 0){for (int l = 0; l < counts[k]; l++){arr[index] = temp[k][l];index++;}counts[k] = 0;}}}}
}

执行结果:

数据结构和算法——八种常用的排序算法------基数排序相关推荐

  1. 八种常用的排序算法(转)

    下面要讲到的8种排序都属于内部排序,既在内存中完成,主要从理论原理方面来分析的.    插入排序 ①直接插入排序 例:六个数12 15 9 20  6 31 24 用直接插入排序,如下图: 思路: 第 ...

  2. 数据结构常考题 —— 八种经典内部排序算法

    经典排序算法 我们经典的排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 算法复杂度如下图: 下面我们 ...

  3. java语言冒泡排序法_Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等...

    本文实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序 首先是EightAlgorithms.java文件,代码如下: import jav ...

  4. 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序

    这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序,需要的朋友可以参考下 本文实现了八个常用的排序算法:插入排序 ...

  5. 视觉直观感受7种常用的排序算法

    1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...

  6. 视觉直观感受 7 种常用的排序算法

    2019独角兽企业重金招聘Python工程师标准>>> 1. 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较 ...

  7. 7 种常用的排序算法直观感受

    1. 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序 ...

  8. 几种常用的排序算法之JavaScript实现

    文章目录 插入排序 二分插入排序 选择排序 选择排序 冒泡排序 快速排序 堆排序 归并排序 桶排序 计数排序 插入排序 <html> <script> /* 1)算法简介插入排 ...

  9. 通过视觉直观感受7种常用的排序算法

    1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...

  10. 算法基础:常用的排序算法知识笔记

    1.算法外排序分类 2.冒泡排序 冒泡排序(Bubble Sort)属于交换排序,它的原理是:循环两两比较相邻的记录,如果反序则交换,直到没有反序的记录为止. 实现算法: /** * 冒泡排序优化后的 ...

最新文章

  1. JS 中 URL 编码的问题.
  2. Android之----Log详解(Log.v,Log.d,Log.i,Log.w,Log.e)
  3. ToolBarTray与ToolBarPanel的区别
  4. mysql游标的概述_MySQL游标简介
  5. 串的块链存储c语言栈,小蚂蚁学习数据结构(18)——串的块链的代码实现
  6. java struts1_struts1.x
  7. 中国树桩粉碎机市场趋势报告、技术动态创新及市场预测
  8. GarsiaWachs算法:石子归并问题
  9. SQLServer 之 2008还原的时候无法获得对数据库的独占访问权解决
  10. matlab按图像边缘抠图_12. 泊松图像编辑
  11. Gradle初级使用教程
  12. 智能家居出货量将达5.4亿台,全屋智能线下渠道是推广主力
  13. vue项目引入markdown
  14. Straight lines have to be straight
  15. 模糊数学(Fuzzy Mathematics)理论基础
  16. Shell脚本中:#!/bin/bash和#!/bin/sh是什么意思以及区别?
  17. 矿物质饲料补充剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 笔记本计算机作文,我的笔记本电脑作文600字
  19. 如何做英文SEO、如何做英文外链
  20. oracle 制作日历表,oracle 用sql生成日历的方法

热门文章

  1. 关于安装CNPM 与搭建VUE空白项目
  2. exception内置对象
  3. SpingBoot —— RestTemplate的配置
  4. Atitit.现在的常用gui技术与gui技术趋势评价总结
  5. Android——ViewPager多页面滑动切换以及动画效果
  6. 基于visual Studio2013解决C语言竞赛题之1030计算函数
  7. 纯虚函数的类为什么不能被实例化
  8. mac地址扫描源码_ARP-基础-扫描-攻击-防范!
  9. 【数据分享】滤泡性淋巴瘤研究数据集
  10. 拓端tecdat|SAS中用单因素ANOVA研究不同疗法对焦虑症的有效性