小顶堆
public class MyHeap<T> {
private int size = 0;
private T[] queue;
private Comparator<T> comparator;
public MyHeap(Integer size, Comparator<T> comparator) {
queue = (T[]) new Object[size];
this.comparator = comparator;
}
public void offer(T val) throws Exception {
if (size >= queue.length) {
grow();
}
if (size == 0) {
queue[0] = val;
size++;
return;
}
queue[size] = val;
sifUp(size, val);
size++;
}
private void grow() {
int newSize = size * 2;
queue = Arrays.copyOf(queue, newSize);
}
public T poll() {
if (size == 0) {
return null;
}
T result = q