博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法导论——基数排序(基于计数排序)
阅读量:6814 次
发布时间:2019-06-26

本文共 750 字,大约阅读时间需要 2 分钟。

hot3.png

/**	 * 基数排序(低位优先算法)        基于计数排序	 * 	 * 时间复杂度为O(d*(n+max)),较快排速度更快。但需要额外内存,所以是非原地排序。如果内存吃紧,还是采用快排比较适合	 */		@Test	public void radixSort(){		String[] dates={"20150121","20130122","20150215","20140922","20140625","20150911","20140625"};				//基数排序--8表示元素的位数		//采用低位优先很简单,就是逐位排序,不过需要依赖于每个位上的排序操作的稳定性,并且待排序的数组中每个元素的位数都需要保持一致		//目前排序日期,每个日期都是8位字符串		radixSort(dates,8);				//以换行的方式打印数组中各个元素		printlnArray(dates);	}	private void radixSort(String[] dates,int d) {		int R=255;		String[] copy=new String[dates.length];		for(int i=d-1;i>=0;i--){			//采用稳定的计数排序			int[] c=new int[R+1];			//计数			for(int j=0;j
=0;j--){ copy[--c[dates[j].charAt(i)]]=dates[j]; } //将辅助数组的值拷贝会原始数组 for(int j=0;j

转载于:https://my.oschina.net/u/1378920/blog/415023

你可能感兴趣的文章