簡體   English   中英

斐波納契堆上每個操作的最壞情況下的時間限制是什么?

[英]What are the worst-case time bounds for each operation on a Fibonacci heap?

斐波納契堆在攤銷意義上是有效的,但是在最壞的情況下,它們的效率如何? 具體來說,在n節點Fibonacci堆上進行這些操作時,最壞情況下的時間復雜度是多少?

  • 找到分鍾
  • 刪除分鍾
  • 插入
  • 減少鍵
  • 合並

在Fibonacci堆上執行find-min操作始終需要最壞情況的O(1)時間。 始終存在一個直接指向該對象的指針。

在最壞的情況下,刪除分鍾的成本為時間Θ(n)。 要看到這一點,請想象從一個空堆開始並對其進行一系列n次插入。 每個節點將存儲在其自己的樹中,刪除操作最少,堆將把所有這些對象合並為O(log n)樹,要求Θ(n)工作至少訪問一次所有節點。

插入的代價是最壞情況下的O(1); 這只是創建一個節點並將其添加到列表中。 合並類似於O(1),因為它只是將兩個列表拼接在一起。

在最壞的情況下,減小鍵的成本為Θ(n)。 可以構建退化的斐波納契堆,其中所有元素都存儲在由n個標記節點的鏈接列表組成的單個樹中。 然后在最底端的節點上執行減少鍵,將觸發一系列級聯切割,將樹轉換為n個獨立的節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM