http://www.cplusplus.com/reference/algorithm/make_heap/關於C++中的make_heap算法
在此鏈接中。它說:
內部,堆是一棵樹比其自身的價值,其中 每個節點鏈接值不大於 。在堆由make_heap產生 ,在樹中,而不是 的元素由存儲器消耗 鏈接被確定是由所述序列中的絕對 位置來確定的 特定位置,帶*第一 是始終在最高值 堆。
關於「由其在序列中的絕對位置決定」。 我困惑在這裏。 它也說「堆是一棵樹,其中每個節點鏈接到不大於其自己的值的值」
這兩個句子是否矛盾?這裏很困惑。 C++中的堆究竟是什麼樹?
希望的任何善良的人能幫助我 非常感謝
該算法的一個很好的解釋是在這個問題:http://stackoverflow.com/questions/5057562。 – 2011-04-09 06:43:09
您可以將二進制堆數據結構(不是內存堆)排列在數組中,而將其視爲完整的二叉樹。您應該閱讀並理解堆排序的實現。查看Cormen等人在「算法導論」中有關Heapsort的章節 – 2011-04-09 07:11:55
我建議閱讀http://en.cppreference.com/w/cpp/algorithm/make_heap,而不是[** cplusplus.com上的任何內容**](http://stackroulette.com/programmers/88241/whats-wrong-with-cplusplus-com)。內部是特定於實現的。 – Johnsyweb 2012-12-29 07:29:20