今天讀了lucent中的PriorityQueue.java, 一個很巧妙的復雜度為log(n)的排序堆棧.

始終確保數組A[1...n]中:
A[i]<A[2*i]  & A[i] < A[2*i +1]
很容易推論出A[1]一定是最小數值, 并且每次put()和pop()至多移動log(n)個數值

真是好久沒接觸算法了:)