import java.util.*; import java.io.*; public class ArrayBuckets { int length; int[] nums; ArrayList[] buckets; public ArrayBuckets(int n){ Random r = new Random(); int random; length = n; nums = new int[length]; for (int i = 0; i<n; i++){ random = r.nextInt(1000); nums[i] = random; } } public String toString(){ return Arrays.toString(nums); } public int getL(){ return length; } public void bsort(int[] a){ int swaps = 0; int comparisons = 0; for (int n = 0; n<a.length; n++){ for (int i = 0; i<a.length-1; i++){ comparisons++; if (a[i] > a[i+1]){ int temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; swaps++; } } if (swaps == 0){ System.exit(0); } } } public void insertionSort(int[] a){ int ins=0; for (int i = 1; i<a.length; i++){ int temp = a[i]; for (int j = i-1;j>=0;j--){ if (temp < a[j]){ a[j+1] = a[j]; a[j] = temp; ins++; } } } } public void selectionSort(int[] a){ for (int i=0;i<a.length;i++){ //swap counts? int minIndex=i; for (int j = i; j<a.length; j++){ if (a[j]<=a[minIndex]){ minIndex = j; } } int temp = a[minIndex]; a[minIndex] = a[i]; a[i] = temp; } } public void radixSort(){ int value, digit; for (int pos = 0; pos<3; pos++){ buckets = new ArrayList[10]; for (int j = 0; j<10; j++){ buckets[j] = new ArrayList(); } for (int i = 0; i<length; i++){ value = nums[i]; digit = (((value)/((int)(Math.pow(10,pos))))%10);//ex: this would return 5 if pos = 1 and nums[i] was 425 //System.out.println(digit); //System.out.println(value); (buckets[digit]).add(nums[i]); } int[] temp = new int[length]; int tp= 0; for (int j = 0; j<buckets.length; j++){ for (int k = 0; k<(buckets[j]).size() && tp<length; k++){ nums[tp] = (Integer)((buckets[j]).get(k)); tp++; } } // System.out.println(Arrays.toString(nums)); } } }