基数排序(java)

简介: 基数排序(java)

基数排序

import java.util.Arrays;
 
/**
 * 基数排序
 */
public class RadixSort {
    public static void main(String[] args) {
        int[] arr = {53, 3, 542, 748, 14, 214};
        radisSort(arr);
        System.out.println(Arrays.toString(arr));
    }
 
    public static void radisSort(int[] arr) {
        //创建一个二维数组,10*length,空间换时间排序
        int[][] bucket = new int[10][arr.length];
        //    记录每个桶数据的下标
        int[] bucketIndex = new int[10];
        //找到最大值
        int max = arr[0];
        for (int item : arr) {
            if (item > max) {
                max = item;
            }
        }
        //获取最大数的位数
        int maxLength=(max+"").length();
        for (int k = 0; k < maxLength; k++) {
            //按照个位放入
            for (int i = 0; i < arr.length; i++) {
                //    取出每个元素的个位值
                int digitOfElement = arr[i]/(10^i) % 10;
                bucket[digitOfElement][bucketIndex[digitOfElement]] = arr[i];
                bucketIndex[digitOfElement]++;
            }
            //    取数据
            int index = 0;
            for (int i = 0; i < bucketIndex.length; i++) {
                for (int j = 0; j < bucketIndex[i]; j++) {
                    arr[index] = bucket[i][j];
                    index++;
                }
                bucketIndex[i] = 0;
            }
        }
 
 
 
    }
}
相关文章
|
搜索推荐 算法 Java
【算法】基数排序的原理与Java实现
基数排序(Radix Sort)是一种非比较性的排序算法,它根据元素的位数逐位进行排序。基数排序的核心思想是将待排序的元素按照低位到高位的顺序进行排序,每一位都使用稳定的排序算法(通常是计数排序或桶排序)。通过多次按位排序,最终可以得到有序的结果
101 0
|
12月前
|
搜索推荐 Java
深入了解基数排序:原理、性能分析与 Java 实现
基数排序(Radix Sort)是一种非比较性排序算法,它根据元素的每个位上的值来进行排序。基数排序适用于整数或字符串等数据类型的排序。
152 2
深入了解基数排序:原理、性能分析与 Java 实现
|
算法 Java
java实现基数排序
java实现基数排序
39 0
|
Java
Java实现基数排序
Java实现基数排序
111 0
Java实现基数排序
|
算法 搜索推荐 Java
经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
|
存储 人工智能 算法
八大排序算法Java实现(下)-快排、归排、基数排序
八大排序算法Java实现(下)-快排、归排、基数排序
156 0
八大排序算法Java实现(下)-快排、归排、基数排序
|
5天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
18 2
|
9天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
13天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
|
11天前
|
Java 开发者
Java中的多线程基础与应用
【9月更文挑战第22天】在Java的世界中,多线程是一块基石,它支撑着现代并发编程的大厦。本文将深入浅出地介绍Java中多线程的基本概念、创建方法以及常见的应用场景,帮助读者理解并掌握这一核心技术。
下一篇
无影云桌面