public MinPQ(Iterable<Key> a)
	{
		pq = (Key[]) new Comparable[4];

		int j = 1;
		for (Key k : a)
		{
			if (j == pq.length)
				pq = resize(pq, pq.length * 2);
			pq[j++] = k;
		}
		N = j - 1;

		for (int i = j / 2; i >= 1; i--)
			sink(i);
	}