码迷,mamicode.com
首页 > 编程语言 > 详细

基数排序

时间:2015-07-26 20:45:19      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

参考文章:http://www.cnblogs.com/Braveliu/archive/2013/01/21/2870201.html

import java.util.Arrays;
public class RadixSortMy 
{

	    public static void sort(int[] data, int maxLength) //d表示最大的数有多少位
	    {
	    	int currentUnit = 0;	 //控制键值排序依据在哪一位
	    	int k=0;
	    	int[][] temp=new int[10][data.length];
	    	int[]order = new int[10]; //数组order[i]用来表示该位是i的数的个数
    	 while(currentUnit<= maxLength)
         {
	    	for(int i = 0;i<data.length;i++)
	    	{
	    		int intowoodenNumber = (data[i] / (int)Math.pow(10,currentUnit)) % 10;
	    		temp[intowoodenNumber][order[intowoodenNumber]] = data[i];
	    		order[intowoodenNumber]++;
	    	}
	    	for(int i=0;i<order.length;i++)
	    	{
	    
	    		if(order[i]!=0)
	    		{
	    			for(int j=0;j<order[i];j++)
	    			{
	    				data[k++]=temp[i][j];
	    			}
	    			order[i]=0;
	    		}
	    		
	    	}
	    	k=0;
	    	currentUnit++;
         }
	    }
	    public static void main(String[] args)
	    {
	        int[] data ={73, 22, 93, 43, 55, 14, 28, 65, 39,123,81};
	        RadixSortMy.sort(data, 3);
	        System.out.println(Arrays.toString(data));
	    }
	}

  

基数排序

标签:

原文地址:http://www.cnblogs.com/sweetculiji/p/4678463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!