import java.util.ArrayList;
/**
* @function:基数排序算法实现
* */
public class RadixSort {
// 构建一个二维数组,装载每次分配的数据
private ArrayList[] tempList = new ArrayList[10];
/**
* @function:构造方法,用于初始化RadixSort类
* */
public RadixSort() {
for (int i = 0; i < this.tempList.length; i++) {
this.tempList[i] = new ArrayList();
}
}
// 收集数据
private String[] Collection(int length) {
String[] a = new String[length];
int k = 0;
for (int i = 0; i < this.tempList.length; i++) {
for (int j = 0; j < this.tempList[i].size(); j++) {
a[k++] = (String) this.tempList[i].get(j);
}
this.tempList[i] = new ArrayList();
}
return a;
}
/**
* @function:分配数据
* @param: unsort 为需要排序的数组
* @param: index为需要按第几位分配
* */
private void Distribution(String[] unsort, int index) {
for (int i = 0; i < unsort.length; i++) {
int j = Integer.parseInt(unsort[i].substring(index, index + 1));
tempList[j].add(unsort[i]);
}
}
/**
* @function:基数排序算法
* */
public String[] radix(String[] a) {
for (int i = 2; i >= 0; i--) {
this.Distribution(a, i);
a = this.Collection(a.length);
}
return a;
}
/**
* @function:打印数组
* */
private void print(String[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
public static void main(String[] args) {
RadixSort r = new RadixSort();
String[] a = new String[] { "278", "109", "063", "930", "589", "333", "679" };
// 打印数据
r.print(a);
// 基数排序
a = r.radix(a);
// 打印数据
r.print(a);
}
}
分享到:
相关推荐
基数排序算法 java实现 还有基数排序的原理文档
基数排序是一种非比较型整数排序算法,它通过按数字的各个位数进行排序来实现整体序列的有序化。该算法首先确定待排序序列中最大数的位数,然后从最低位(个位)开始,依次对每一位进行排序。在排序过程中,通过创建...
用java对常用排序算法进行分析与实现.包含: 插入排序 直接插入排序、希尔排序 • 选择排序 简单选择排序、堆排序 • 交换排序 冒泡排序、快速排序 • 归并排序 • 基数排序
基数排序的关键思想是按照数字的个位、十位、百位等逐个进行计数排序,从最低位到最高位。在每个位上,使用计数排序来稳定地排序数组。通过多次迭代,对所有位进行排序后,最终得到有序的数组。 在示例代码中,我们...
该资源提供了在Java中如何实现基数排序的全面指南。文档涵盖了基数排序的基本概念,包括如何对数组进行排序以及如何在Java中实现基数排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现基数排序,包括详细...
自己写的插入排序,随机产生1000次,每次产生0-1000个数,验证算法正确性。java实现。
在实际应用中,插入排序和现则排序因为实现简单,使用的比较多,但是在对效率要求比较高、且待排序数据量大的场合,还是应该采用时间复杂度较低的排序算法,因此对排序算法进行试验比较,增强实践认识很有必要。...
基数排序(radix sort)又称桶排序(bucket sort),相对于常见的比较排序,基数排序是一种分配式排序,需要将关键字拆分成数字位。并且按照数字位的值对数据项进行排序,这种方法不需要进行比较操作。 为了尽可能少的...
几种内部排序算法的Java实现 各种内部排序方法的比较 直接插入排序 折半插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序 基数排序
八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)
Java数据挖掘18大算法实现和10大常见排序算法以及其他相关经典DM算法集合。 18大数据挖掘的经典算法以及代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面,后面都是相应算法的文章,希望能够...
以下排序的Java代码实现: 插入排序(直接插入排序、二分法插入排序、希尔排序) 选择排序(简单选择排序、堆排序) 交换排序(冒泡排序、快速排序) 归并排序 基数排序
冒泡,归并,快速,插入,基数,希尔,堆排序等排序算法使用java实现
这里提供了冒泡排序,插入排序,递归排序,基数排序,快速排序,选择排序,希尔排序这几种排序算法。里面有大量的注释,可以理解实现思路
八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...
总结了常用的八大排序算法:(交换式:1、冒泡,2、快排; 选择式:3、选择, 4、堆排; 插入式:5、插入, 6、希尔; 其他:7、归并, 8、基数排序)。 并包含了Java实现的源代码。
常用排序算法的Java实现源码,包括冒泡排序,快速排序,直接插入排序,希尔排序,直接选择排序,堆排序,归并排序,基数排序,计数排序。
java常用的排序算法 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序,含鸡尾排序。以及二叉树和拓扑结构!
本资源包含桶排序,基数排序与计数排序三种线性排序算法
java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 快速排序(Quick Sort) 5. 归并排序(Merge Sort) 6. 堆排序(Heap Sort) 7. 计数排序...