Java实现基数排序

来源:互联网 发布:淘宝老是要输入验证码 编辑:程序博客网 时间:2024/05/17 01:46
import java.util.*;public class RadixSort {    public static void main(String[] args) {        int[] n = new int[100];        for(int i=0;i<n.length;i++) {            n[i] = (int)(Math.random()*1000);        }        radixSort(n,3);        for(int i=0;i<n.length;i++) {            System.out.println(n[i]);        }    }        public static void radixSort(int[] n,int num) {        @SuppressWarnings("unchecked")        ArrayList<Integer>[] list = new ArrayList[10];        for(int i=0;i<list.length;i++) {            list[i] = new ArrayList<Integer>();        }        for(int pos=0;pos<num;pos++) {            for(int i=0;i<list.length;i++) {                list[i].clear();            }            for(int i=0;i<n.length;i++) {                int key = key(n[i],pos);                list[key].add(n[i]);            }            int index = 0;            for(int i=0;i<list.length;i++) {                if(list[i]!=null) {                    for(int j=0;j<list[i].size();j++) {                        n[index++] = list[i].get(j);                    }                }            }        }    }        public static int key(int n,int pos) {        int result = 1;        for(int i=0;i<pos;i++) {            result *= 10;        }        return (n/result)%10;    }}

0 0