diff --git a/testable_median/src/main/java/edu/unl/cse/soft160/testable_median/MedianOfFive.java b/testable_median/src/main/java/edu/unl/cse/soft160/testable_median/MedianOfFive.java index 16abf3d606efde4bf3d0465ea5230ac293d98c66..02b85a78cf9e933fdefb48d74c722a47b309da18 100644 --- a/testable_median/src/main/java/edu/unl/cse/soft160/testable_median/MedianOfFive.java +++ b/testable_median/src/main/java/edu/unl/cse/soft160/testable_median/MedianOfFive.java @@ -17,7 +17,7 @@ public class MedianOfFive { } return result; } - + public static void showOutput(double[] numbers, double median) { String message = "The median of " + Arrays.toString(numbers) + " is " + median + "."; showMessageDialog(null, message); @@ -25,7 +25,28 @@ public class MedianOfFive { public static double getMedian(double first, double second, double third, double fourth, double fifth) { double[] ordered = { first, second, third, fourth, fifth }; - Arrays.sort(ordered); + // An unorthodox unrolled solution: + for (int i = 1; i < ordered.length; ++i) { + if (ordered[0] > ordered[i]) { + double swap = ordered[0]; + ordered[0] = ordered[i]; + ordered[i] = swap; + } + } + for (int i = 2; i < ordered.length; ++i) { + if (ordered[1] > ordered[i]) { + double swap = ordered[1]; + ordered[1] = ordered[i]; + ordered[i] = swap; + } + } + for (int i = 3; i < ordered.length; ++i) { + if (ordered[2] > ordered[i]) { + double swap = ordered[2]; + ordered[2] = ordered[i]; + ordered[i] = swap; + } + } return ordered[2]; }