private void Swap(int i, int j)
 {
     KeyedPriorityQueue <K, V, P> .HeapNode <K, V, P> value = this.heap[i];
     this.heap[i] = this.heap[j];
     this.heap[j] = value;
 }