private int swim(int i)
	{
		Key t = pq[i]; // Save key for later restoring
		while (i > 1 && greater(pq[i / 2], pq[i]))
		{
			// exch(pq, i / 2, i);
			pq[i] = pq[i / 2]; // half exchanges
			i = i / 2;
		}
		pq[i] = t; // restore key
		return i;
	}