import java.util.*;
public class RadixSort {
public static void main(String[] args) {
int[] n = new int[100];
for(int i=0;i<n.length;i++) {
n[i] = (int)(Math.random()*1000);
}
radixSort(n,3);
for(int i=0;i<n.length;i++) {
System.out.println(n[i]);
}
}
public static void radixSort(int[] n,int num) {
@SuppressWarnings("unchecked")
ArrayList<Integer>[] list = new ArrayList[10];
for(int i=0;i<list.length;i++) {
list[i] = new ArrayList<Integer>();
}
for(int pos=0;pos<num;pos++) {
for(int i=0;i<list.length;i++) {
list[i].clear();
}
for(int i=0;i<n.length;i++) {
int key = key(n[i],pos);
list[key].add(n[i]);
}
int index = 0;
for(int i=0;i<list.length;i++) {
if(list[i]!=null) {
for(int j=0;j<list[i].size();j++) {
n[index++] = list[i].get(j);
}
}
}
}
}
public static int key(int n,int pos) {
int result = 1;
for(int i=0;i<pos;i++) {
result *= 10;
}
return (n/result)%10;
}
}
Java实现基数排序
原创mb637f2759ea9f4 ©著作权
©著作权归作者所有:来自51CTO博客作者mb637f2759ea9f4的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C++递归法算矩阵连乘问题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java stream 某个字段去重排序
java stream 某个字段去重排序
java List 字段 -
基数排序
基数排序其实就是使用空间来换取时间,因为有了分布式的计算,空间好
基数排序 python -
Python实现基数排序
Python实现基数排序
Python实现基数排序 基数排序 基数排序简介 基数排序原理 -
JS实现基数排序
基数排序(Radix Sort)作为一种非比较性的排序算法,以其独特的思想和高效的性能而受到广泛关注。本文将深入研究基数排序的原理、实现方式等。
javascript 算法 面试 基数排序 git -
python 设置 窗口置顶
PyQt5学习笔记——基本窗口组件(1)最近在看PyQt5方面的教材,简单整理汇总便于查阅;因为过于简略如果希望于深入的学习还是应该啃书本吧~QMainWindow 窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也可以说是GUI程序的主窗口QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的,也可以是非模态的。如果是主窗口,就使用Q
python 设置 窗口置顶 mfc e将控件置于窗口顶层 mfc 使打开的窗口至于最顶层 pyqt5 qlabel无法显示图片 pyqt5 qtextedit