`
housen1987
  • 浏览: 340599 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

基数排序算法实现(Java版)

阅读更多
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对常用排序算法进行分析与实现.包含: 插入排序 直接插入排序、希尔排序 • 选择排序 简单选择排序、堆排序 • 交换排序 冒泡排序、快速排序 • 归并排序 • 基数排序

    java实现基数排序算法

    基数排序的关键思想是按照数字的个位、十位、百位等逐个进行计数排序,从最低位到最高位。在每个位上,使用计数排序来稳定地排序数组。通过多次迭代,对所有位进行排序后,最终得到有序的数组。 在示例代码中,我们...

    [Java算法-排序练习]基数排序.java

    该资源提供了在Java中如何实现基数排序的全面指南。文档涵盖了基数排序的基本概念,包括如何对数组进行排序以及如何在Java中实现基数排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现基数排序,包括详细...

    基数排序 java实现

    自己写的插入排序,随机产生1000次,每次产生0-1000个数,验证算法正确性。java实现。

    java多种排序算法的实现

    在实际应用中,插入排序和现则排序因为实现简单,使用的比较多,但是在对效率要求比较高、且待排序数据量大的场合,还是应该采用时间复杂度较低的排序算法,因此对排序算法进行试验比较,增强实践认识很有必要。...

    基于双向链表的基数排序

    基数排序(radix sort)又称桶排序(bucket sort),相对于常见的比较排序,基数排序是一种分配式排序,需要将关键字拆分成数字位。并且按照数字位的值对数据项进行排序,这种方法不需要进行比较操作。 为了尽可能少的...

    几种内部排序算法的Java实现

    几种内部排序算法的Java实现 各种内部排序方法的比较 直接插入排序 折半插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序 基数排序

    八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)

    八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)

    Java数据挖掘常见18种算法实现和10种常见排序算法以及其他相关经典DM算法集合.zip

    Java数据挖掘18大算法实现和10大常见排序算法以及其他相关经典DM算法集合。 18大数据挖掘的经典算法以及代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面,后面都是相应算法的文章,希望能够...

    8中排序算法(java实现)

    以下排序的Java代码实现: 插入排序(直接插入排序、二分法插入排序、希尔排序) 选择排序(简单选择排序、堆排序) 交换排序(冒泡排序、快速排序) 归并排序 基数排序

    常见排序算法(java代码实现)

    冒泡,归并,快速,插入,基数,希尔,堆排序等排序算法使用java实现

    Java 七种排序算法实现

    这里提供了冒泡排序,插入排序,递归排序,基数排序,快速排序,选择排序,希尔排序这几种排序算法。里面有大量的注释,可以理解实现思路

    八大排序-java实现版

    八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...

    八大排序算法总结(含Java实现源代码)

    总结了常用的八大排序算法:(交换式:1、冒泡,2、快排; 选择式:3、选择, 4、堆排; 插入式:5、插入, 6、希尔; 其他:7、归并, 8、基数排序)。 并包含了Java实现的源代码。

    常用排序算法源码下载(Java实现)

    常用排序算法的Java实现源码,包括冒泡排序,快速排序,直接插入排序,希尔排序,直接选择排序,堆排序,归并排序,基数排序,计数排序。

    java十二种排序算法实现源代码(类)

    java常用的排序算法 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序,含鸡尾排序。以及二叉树和拓扑结构!

    三种线性排序算法Java实现

    本资源包含桶排序,基数排序与计数排序三种线性排序算法

    java十大排序算法实现

    java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 快速排序(Quick Sort) 5. 归并排序(Merge Sort) 6. 堆排序(Heap Sort) 7. 计数排序...

Global site tag (gtag.js) - Google Analytics