基数排序RadixSort二进制的实现

基数排序RadixSort二进制的实现

基本概念:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
基数排序的方式可以采用LSD或MSD,LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。
源码

public class RadixSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=0;i<8;i++)
		{
			B[i]=(int)(Math.random()*10);
		}
		System.out.println(Arrays.toString(B));
		radixSort(B);
		System.out.println(Arrays.toString(B));

	}
	static void RadixSort(int [] A)
    {
    	  for(int i=0;i<32;i++)
    	   {
    		   List<Integer> l0= new ArrayList<>();
    	       List<Integer> l1= new ArrayList<>();
    	       for(int j=0;j<A.length;j++)
     	    {
    	    	   System.out.println ((A[j]>>i&1));
    		   if((A[j]>>i&1)==0) 
    			l0.add(A[j]);
    	    	else l1.add(A[j]);    		
    	    }
    	      for(int j=0;j<l0.size();j++)
    	    	  A[j]=l0.get(j);
    	      for(int j=0;j<l1.size();j++)
    	    	 A[j+l0.size()]=l1.get(j);
    	   }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值