今天讀了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)個數值 真是好久沒接觸算法了:)