/** * This class contains some static methods for returning some statistics * on integer arrays. * This class also provides a sort method. * * A main method is included. * * @author Anthony Larrain * * */ class ArrayTool{ public static void main(String [] args){ int [] array1 = {5,6,8,1,2}; System.out.println("Array one is"); printArray(array1); int [] array2 = copy(array1); System.out.println("Array two is"); printArray(array2); sort(array2); System.out.println("Array one is still"); printArray(array1); System.out.println("Array two now becomes"); printArray(array2); System.out.println("The minimum of array1 is " + min(array1)); System.out.println("The mean of array1 is " + mean(array1)); System.out.println("The median of array1 is " + median(array1)); } public static void printArray(int [] array){ for(int i = 0; i < array.length; i++){ System.out.print(array[i] + " "); } System.out.println(); } public static int [] copy (int [] array ) { int [] newArray = new int [array.length]; for(int i = 0; i < array.length; i++ ){ newArray[i] = array[i]; } return newArray; } // Precondition: Array is not empty public static double mean(int [] data ) { int sum = 0; for(int i = 0; i < data.length; i++){ sum += data[i]; } return (double) sum / data.length; } // Precondition: Array is not empty public static double median(int [] data ) { int [] clone = copy(data); sort(clone); int mid = clone.length / 2; if( clone.length % 2 == 0 ){ return (clone[mid] + clone[mid - 1] ) / 2.0; }else{ return clone[mid]; } } // Precondition: Array is not empty public static int min(int [] data){ int min = data[0]; for(int i = 0; i < data.length; i++){ if(data[i] < min){ min = data[i]; } } return min; } // Sort the elements of the array into non-dereasing order. public static void sort(int [] array) { int temp; for(int i = 0; i < array.length; i++) { for(int j = i + 1; j < array.length; j++ ){ if( array[i] > array[j] ) { // swap temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } }