开发者

Whats the best algorithm for Non Disjoint Set Union?

开发者 https://www.devze.com 2023-01-15 21:45 出处:网络
Lets say there are two (non disjoint) sets of points (c开发者_如何转开发artesian space), what is the best case complexity algorithm to perform the union of the two sets ?Since the point coordinates ar

Lets say there are two (non disjoint) sets of points (c开发者_如何转开发artesian space), what is the best case complexity algorithm to perform the union of the two sets ?


Since the point coordinates are arbitrary and there is no special relation between them, I don't see this problem as a geometric specific problem. It is the generic problem of efficiently merging S1 and S2 into a new set S.

I know about two options:

1) When the sets are stored in a hash table (actually a hash set), the union takes O(|S1|+|S2|) in average.

2) If you store the structures in a balanced search tree, you can achieve a worst case time of O(|S1| * Log(|S1|)), assuming that |S1|>|S2|.


Actually, if the sets are in a balanced search tree, I think you can do it in O(|S2| (1+log (|S1|/|S2|)), where |S1|>=|S2|. This is optimal in the worst case.

0

精彩评论

暂无评论...
验证码 换一张
取 消