Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

//this is in java import java.util.Comparator; public class BinaryMinHeap { private ArrayList array; private Comparator comparator; public BinaryMinHeap(int capacity, Comparator comparator) { array = new

image text in transcribed

//this is in java

import java.util.Comparator;

public class BinaryMinHeap { private ArrayList array; private Comparator comparator; public BinaryMinHeap(int capacity, Comparator comparator) { array = new ArrayList(capacity + 1); array.add(null); // Index zero is unused this.comparator = comparator; } private static final int ROOT = 1; private static int left(int i) { return 2 * i; } private static int right(int i) { return 2 * i + 1; } private static int parent(int i) { return i / 2; } private int minChild(int i) { int leftChild = left(i); int rightChild = right(i); // If both a left and right child exist, // take the smaller of the two. if (rightChild ROOT && comparator.compare(element, array.get(parent(hole))) = 2) { // Determine the child to promote, if needed int minChild = minChild(hole); // Promote elements until it's not needed, // or we reach the bottom of the heap while(minChild minHeap1 = new BinaryMinHeap(7, Comparator.naturalOrder()); minHeap1.add(4); minHeap1.add(7); minHeap1.add(1); minHeap1.add(6); minHeap1.add(2); minHeap1.add(3); minHeap1.add(5); System.out.println(minHeap1.array); BinaryMinHeap minHeap2 = new BinaryMinHeap(7, Comparator.naturalOrder()); minHeap2.add(7); minHeap2.add(1); minHeap2.add(5); minHeap2.add(2); minHeap2.add(3); minHeap2.add(6); minHeap2.add(4); System.out.println(minHeap2.array); BinaryMinHeap minHeap3 = new BinaryMinHeap(9, Comparator.naturalOrder()); minHeap3.add(1); minHeap3.add(2); minHeap3.add(3); minHeap3.add(17); minHeap3.add(19); minHeap3.add(36); minHeap3.add(7); minHeap3.add(25); minHeap3.add(100); System.out.println(minHeap3.array); minHeap3.remove(); System.out.println(minHeap3.array); BinaryMinHeap minHeap4 = new BinaryMinHeap(9, Comparator.naturalOrder()); minHeap4.add(-100); minHeap4.add(-19); minHeap4.add(-36); minHeap4.add(-17); minHeap4.add(-3); minHeap4.add(-25); minHeap4.add(-1); minHeap4.add(-2); minHeap4.add(-7); System.out.println(minHeap4.array); minHeap4.remove(); System.out.println(minHeap4.array); BinaryMinHeap minHeap = new BinaryMinHeap(16, Comparator.naturalOrder()); for (int i = 0; i

please provide the output

4 Heap-Sort Heap-Sort is another tree-based sorting algorithm discussed briefly in lecture. The steps of Heap-Sort are: Fill an initially empty binary min-heap with the elements of the unsorted list. Remove elements one-by-one and add them, in order, to a new array. . Using the implementation of BinaryMinHeap.java from lecture, implement HeapSort. The signature for the method should be public static Object) heapSort (T original, Comparator comp) Write several test cases for Heap-Sort and demonstrate to a TA that they pass

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

Calculate the lifetime value (LTV) of a loyal customer.

Answered: 1 week ago