2012-07-31 17 views
1

是否有任何方法來估計d堆中節點的插入深度,該堆能夠擊敗(node_value/heap_max) * h,其中h是堆高度,heap_max被歸一化爲堆最小?估計d堆中節點的插入深度

在這種特殊情況下,維持額外/歷史數據來支持這種啓發式是可行的,因爲它的維護時間爲O(1)。

回答

0

根據將一個新元素插入一個堆 [Doberkat,1981]具有統一密鑰分佈的二進制堆查看平均每個插入1.6個UpHeap操作。對於d堆,等效數字應該相當接近。

0

不完全是O(1),但O(loglogn)(對於所有實際用途O(1))解決方案將存儲某種等級統計。例如。您可以存儲每個級別的最大值並執行二進制搜索。

+0

這是否真的改善了天真的啓發式,但? – 2012-08-11 14:58:20

+0

@MartinKällman天真是O(logn)是吧?這是O (loglogn) – ElKamina 2012-08-13 16:57:04

+0

經驗主義的結果​​。讓我們看看我們最終在實踐中的結果:) – 2012-08-13 19:04:46