import java.io.*; import java.util.*; public class Radix { private int[] a; private int digits; private ArrayList[] buckets; public Radix() { a = new int[10]; for (int i=0;i<10;i++) { a[i]=(int)(Math.random()*10000); } digits = 4; buckets = new ArrayList[10]; for (int i=0;i<10;i++) { buckets[i] = new ArrayList<Integer> (); } } public Radix(int items, int digs) { a = new int[items]; for (int i=0;i<items;i++) { a[i]=(int)(Math.random()*1*Math.pow(10,digs)); } digits = digs; buckets = new ArrayList[10]; for (int i=0;i<10;i++) { buckets[i] = new ArrayList<Integer> (); } } public int[] getA() { return a; } public String toString() { return Arrays.toString(a); } public void sort(int[] a) { for (int i=0;i<digits;i++) { for (int j=0;j<10;j++) { buckets[j] = new ArrayList<Integer> (); } for (int j=0;j<a.length;j++) { int index = (int) ((a[j] / Math.pow(10,i)) % 10); buckets[index].add((Integer)(a[j])); } int buk = 0; int j = 0; while (buk<10) { for (int k=0;k<buckets[buk].size();k++) { a[j]=(Integer)buckets[buk].get(k); j++; } buk++; } } } public int[] bsort(int[] a){ int compares = 0; int swaps = 0; int loops = a.length-1; boolean isOrdered = false; while (!isOrdered) { isOrdered = true; for (int i=0;i<loops;i++) { compares++; if (a[i] < a[i+1]) { swaps++; isOrdered = false; int temp = a[i+1]; a[i+1] = a[i]; a[i] = temp; } } } System.out.print("\t"+compares+"\t"); System.out.print("\t"+swaps+"\t"); return a; } }