import java.io.*; import java.util.*; public class sort { private int[] ran = new int[10]; private ArrayList[] buckets = new ArrayList[10]; private int compare, swap; public void generate() { Random r = new Random(); for(int i = 0; i < 10; i++) { ran[i] = r.nextInt(9999); } } public String toString() { String s = "[ "; for(int i =0; i< ran.length; i++) { s = s + ran[i] + " "; } s = s + "]"; return s; } public void radixSort(){ for(int i = 0; i < 4; i++) { for(int newi = 0; newi<10; newi++){ buckets[newi] = new ArrayList(); } for(int j = 0; j <10; j++) { int n = ran[j]/((int)(Math.pow(10,i)))%10; buckets[n].add(ran[j]); } int herp = 0; for(int k = 0; k<10; k++) { for(int l = 0; l<buckets[k].size(); l++) { int z = (Integer)(buckets[k].get(l)); ran[herp] = z; herp++; } } } } public void bsort(int[] a){ compare = 0; swap = 0; for(int i=0;i<a.length;i++){ for(int j=0;j<a.length-1;j++){ compare++; if(a[j]>a[j+1]){ swap++; int n = a[j]; a[j] = a[j+1]; a[j+1] = n; } } } } public void insertionSort(int[] a){ compare = 0; swap = 0; for (int i=1;i<a.length;i++) { int temp = a[i]; compare++; for(int j=i;j>0 && a[j]<a[j-1];j--) { compare++; a[j] = a[j-1]; a[j-1] = temp; swap+=2; } } } public void selectionSort(int[] a){ compare = 0; swap = 0; for (int i=0;i<a.length-1;i++) { int min = i; for (int j=i;j<a.length;j++) { compare++; if (a[j]<a[min]) { min=j; } } for (int k=min;k>i;k--) { a[k]=a[k-1]; swap++; } a[i]=a[min]; } } public static void main(String[] args) { sort s = new sort(); s.generate(); System.out.println("Before " + s); s.radixSort(); System.out.println("After " + s); s.generate(); System.out.println("Before " + s); s.bsort(s.ran); System.out.println("After " + s); s.generate(); System.out.println("Before " + s); s.insertionSort(s.ran); System.out.println("After " + s); s.generate(); System.out.println("Before " + s); s.selectionSort(s.ran); System.out.println("After " + s); } }