private void percolatingDown(int k) {
		T tmp = heapArray[k];
		int child;

		while (2 * k <= size) {
			child = 2 * k;

			if (child != size && heapArray[child].compareTo(heapArray[child + 1]) > 0) {
				child++;
			}
			if (tmp.compareTo(heapArray[child]) > 0) {
				heapArray[k] = heapArray[child];
			} else {
				break;
			}
			k = child;
		}
		heapArray[k] = tmp;
	}