/* * Java program to test/time quicksort. * * sequential version. * * command-line arguments: number of elements to sort, seed for RNG. */ package csci3366.hw4; import java.util.Random; public class QuickSortSeq { /* main method */ public static void main(String[] args) { String usageMsg = "arguments are numElements seed"; /* process command-line arguments */ if (args.length < 2) { System.err.println(usageMsg); System.exit(1); } int n = 0; int seed = 0; try { n = Integer.parseInt(args[0]); seed = Integer.parseInt(args[1]); } catch (NumberFormatException e) { System.err.println("arguments must be integers"); System.exit(1); } /* generate data */ Integer[] ints = new Integer[n]; Random randGen = new Random((long) seed); for (int i = 0; i < ints.length; ++i) { ints[i] = new Integer(randGen.nextInt()); } /* sort (time this part only) */ long startTime = System.currentTimeMillis(); sort(ints); long endTime = System.currentTimeMillis(); /* check whether sort succeeded */ if (isSorted(ints)) { System.out.println("sort succeeded"); } else { System.out.println("sort failed"); } /* print timing result */ System.out.println("Time for sort of " + n + " random integers (seed " + seed + ") is " + ((double) (endTime - startTime) / 1000) + " seconds"); } /* check whether array is sorted */ public static boolean isSorted(Integer[] data) { for (int i = 0; i < data.length-1; ++i) { if (data[i].compareTo(data[i+1]) > 0) return false; } return true; } /* main quicksort routine */ public static void sort(Integer[] data) { /* YOUR CODE GOES HERE */ } }