// CSE 143, Winter 2011, Marty Stepp // This program performs some operations and // measures and reports the total runtime. // It forms a basis for runtime efficiency testing. import java.util.*; public class SpeedTest { public static void main(String[] args) { int[] a = createArray(10000000); // get start/stop system times to find out how fast the code ran long startTime = System.currentTimeMillis(); // put code to time here... int r = range(a); long endTime = System.currentTimeMillis(); long elapsed = endTime - startTime; System.out.println("Took " + elapsed + "ms"); } // returns the range of values in the given array; // the difference between elements furthest apart // example: range({17, 29, 11, 4, 20, 8}) is 25 public static int range(int[] numbers) { int maxDiff = 0; // look at each pair of values for (int i = 0; i < numbers.length; i++) { for (int j = 0; j < numbers.length; j++) { int diff = Math.abs(numbers[j] - numbers[i]); if (diff > maxDiff) { maxDiff = diff; } } } return maxDiff; } // Creates an array of the given length, fills it with random data, // and returns it. public static int[] createArray(int length) { int[] a = new int[length]; Random rand = new Random(); for (int i = 0; i < a.length; i++) { a[i] = rand.nextInt(1000000000); } return a; } // returns the range of values in the given array; // the difference between elements furthest apart // example: range({17, 29, 11, 4, 20, 8}) is 25 public static int range2(int[] numbers) { int maxDiff = 0; // look at each pair of values for (int i = 0; i < numbers.length; i++) { for (int j = i + 1; j < numbers.length; j++) { int diff = Math.abs(numbers[j] - numbers[i]); if (diff > maxDiff) { maxDiff = diff; } } } return maxDiff; } // returns the range of values in the given array; // example: range({17, 29, 11, 4, 20, 8}) is 25 public static int range3(int[] numbers) { int max = numbers[0]; // find max/min values int min = max; for (int i = 1; i < numbers.length; i++) { if (numbers[i] < min) { min = numbers[i]; } if (numbers[i] > max) { max = numbers[i]; } } return max - min; } }