Exemple #1
0
  /**
   * 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");
  }