void reHeap(int[] f, int end) {
		int current = 0;
		while (current < end) {
			int childLeft = 2 * current + 1;
			int childRight = 2 * current + 2;
			if (childLeft > end)
				return;
			if (childRight <= end) {
				if (f[current] >= f[childLeft] && f[current] >= f[childRight])
					return;
				else if (f[childLeft] > f[childRight]) {
					swap(f, current, childLeft);
					current = childLeft;
				} else {
					swap(f, current, childRight);
					current = childRight;
				}
			} else if (f[current] >= f[childLeft])
				return;
			else {
				swap(f, current, childLeft);
				current = childLeft;
			}
		}
	}