簡體   English   中英

使用路徑壓縮查找集而無需按等級合並

[英]Find set with path compression without union by rank

如果我有n個單節點樹並且有m個查找集操作(請注意:假設之前已進行過合並,則沒有合並)並且僅使用路徑壓縮,這是否需要O(m)時間? 我一直在試圖證明這一點,但事實並非如此。 由於聯合不按等級使用聯合,因此查找集最多需要O(n)時間。 但是,仍然有可能在O(m)時間內完成m個查找集?

通常,這不需要花費時間O(m)即可完成。 想象一下,將n個節點分為√n個組,並且在每個組中,所有節點都鏈接在一起,成為大小為√n的鏈表。 現在,如果執行√n次查找操作,則鏈表的每個根都需要執行一次操作,則總工作量為Θ(n),因為您必須更新組中幾乎每個節點上的指針。

但是,如果要以不同的順序執行查找操作(例如,通過從鏈表的末尾開始並向后工作),則可以在O(n)時間內執行n次總操作。

一般而言, 對於n個節點上的m次操作,僅使用路徑壓縮進行聯合查找的成本為O(m log n + n)

暫無
暫無

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

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