/** * ad hoc test driver * * @param args */ public static void main(String[] args) { final Integer[] input = new Integer[args.length]; int i = 0; for (final String arg : args) { input[i++] = Integer.parseInt(arg); } BinaryHeap<Integer> maxHeap = new BinaryHeap<Integer>(input, (a, b) -> (a - b)); System.out.println("max heap = [[[\n" + maxHeap.toString() + "]]]\n"); BinaryHeap<Integer> minHeap = new BinaryHeap<Integer>(new Integer[0], (a, b) -> (b - a)); while (!maxHeap.isEmpty()) { minHeap.add(maxHeap.remove()); } System.out.println("min heap = [[[\n" + minHeap.toString() + "]]]\n"); maxHeap = new BinaryHeap<Integer>(input, (a, b) -> (a - b)); maxHeap.sort(); System.out.println("sorted max heap = [[[\n" + maxHeap.toString() + "]]]\n"); minHeap = new BinaryHeap<Integer>(Arrays.asList(input), (a, b) -> (b - a)); System.out.println("min heap = [[[\n" + minHeap.toString() + "]]]\n"); maxHeap = new BinaryHeap<Integer>(new Integer[0], (a, b) -> (a - b)); while (!minHeap.isEmpty()) { maxHeap.add(minHeap.remove()); } System.out.println("max heap = [[[\n" + maxHeap.toString() + "]]]\n"); minHeap = new BinaryHeap<Integer>(Arrays.asList(input), (a, b) -> (b - a)); minHeap.sort(); System.out.println("sorted min heap = [[[\n" + minHeap.toString() + "]]]\n"); }