基数排序算法

package week5;

import org.junit.Test;
public class RadixSort2 {
        //测试函数
        @Test
        public void test(){
            int[] A = {7467,1247,3275,6792,9187,9134,4675,1239};
            radixsort(A,4);
        }
        /*基数排序
         * @para A要排序的数
         * @para A中数的长度
         * */
        public void radixsort(int[] A,int length){
            int count = A.length;
            int[] wei = new int[count];  //用来存放A中每个数的位
            int div = 10;
            for(int i=0; i<length; i++){            
                for(int j=0; j<count; j++){//获取每个数的个.十.百.千位
                    wei[j] = A[j]%div/(div/10);
                    System.out.print(wei[j]+" ");
                }
                System.out.println();
                //使用选择排序将选中的每个数位进行排序
                for(int m=0;m<count;m++){
                    int mix = wei[m]; //指定位的最小值
                    for(int n=m+1; n<count; n++){
                        if(wei[n]<mix){                
                            mix = wei[n];                            
                            int temp = A[n];                             
                            for(int t=n; t>m; t--){ //将最小值抽取出来,然后数组中的其他数依次后退
                                A[t] = A[t-1];
                                wei[t] = wei[t-1];
                            }                            
                            A[m] = temp;  
                            wei[m] = mix;    
                        }
                    }
                    for(int x=0;x<count;x++){
                        System.out.print(A[x]+" ");
                    }
                    System.out.println("..........................");
                }                
                div *= 10;    
            }
        }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值