code: @SuppressWarnings("unchecked")
  	private void siftUp (int k, E x) {
  		while (k > 0) {
  			int parent = (k - 1) >>> 1;
  			E e = (E)queue[parent];
  			if (x.compareTo(e) >= 0) break;
  			queue[k] = e;
  			k = parent;
  		}
  		queue[k] = x;
  	}
docs: Inserts item x at position k, maintaining heap invariant by promoting x up the tree until it is greater than or equal to its
  parent, or is the root.
  
  @param k the position to fill
  @param x the item to insert