import java.io.*; import java.util.*; public class Sorts { public double[] bubbleSort(double[] list){ int compares = 0; int swaps = 0; for (int p = 0; p < list.length; p++){ for (int i = 0; i < list.length-1; i++){ if (list[i] > list[i+1]){ double temp = list[i]; list[i] = list[i+1]; list[i+1] = temp; swaps = swaps + 1; } compares = compares + 1; } } System.out.println("Swaps: " + swaps + " Comparisons " + compares); return list; } public double[] radixSort(double[] values, int numDigs){ int numNums = values.length; ArrayList[] buckets = new ArrayList[numNums]; for (int i = 0; i<numNums; i++){ buckets[i] = new ArrayList(); } for (int n = 0; n<numDigs; n++){ for (int y = 0; y <numNums; y++){ buckets[(int)(values[y]/Math.pow(10,n))%10].add(values[y]); } int a = 0; for (int z = 0; z <numNums; z++){ for (int r = 0; r <buckets[z].size(); r++){ values[a] = (Double)buckets[z].get(r); a = a +1; } } for (int b = 0; b <buckets.length; b++){ buckets[b].clear(); } } return values; } public double[] insertionSort(double[] list){ int assigns = 0; for (int i=0; i<list.length-1; i++){ int m = i; while (m>=0 && list[m] > list [m + 1]){ double temp = list[m]; list[m] = list [m+1]; list[m+1] = temp; assigns = assigns + 1; m = m -1; } } System.out.println ("assigns: " + assigns); return list; } public double[] selectionSort(double[] list){ int swaps = 0; int compares = 0; for (int i = 0; i<list.length; i++){ int curMin = i; for (int m= i; m <list.length; m++){ if (list[curMin] > list[m]){ curMin = m; } compares = compares + 1; } double temp = list[i]; list[i] = list[curMin]; list[curMin] = temp; swaps = swaps + 1; } System.out.println ("swaps: " + swaps + " compares: " + compares); return list; } }