`
housen1987
  • 浏览: 340191 次
  • 性别: 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实现

    自己写的插入排序,随机产生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. 计数排序...

    java常见排序算法合集讲解以及java实现.zip

    Java中常见的排序算法 1.直接插入排序 2.希尔排序 3.选择排序 4.冒泡排序 5.归并排序 6.快速排序 7.堆排序 8.计数排序 9.桶排序 10.基数排序 包含这十种算法的讲解以及动态图解(ppt)和java实现

Global site tag (gtag.js) - Google Analytics