Core Implementation
Basic DSU with Path Compression and Union by Rank
Implementation Variations
1. DSU with Path Splitting
2. DSU with Path Halving
3. Weighted Quick Union
Time Complexities
Operation | Simple DSU | Path Compression | Path Splitting | Weighted QU |
---|---|---|---|---|
Make Set | O(1) | O(1) | O(1) | O(1) |
Find | O(N) | O(α(N))* | O(log N) | O(log N) |
Union | O(N) | O(α(N))* | O(log N) | O(log N) |
Connected | O(N) | O(α(N))* | O(log N) | O(log N) |
Space Complexities
Implementation | Space Complexity | Additional Notes |
---|---|---|
Basic DSU | O(N) | Parent array only |
Ranked DSU | O(N) | Extra array for ranks |
Weighted QU | O(N) | Extra array for sizes |
Path Compression | O(N) | No extra space beyond parent array |
Common Data Structure Patterns
-
Connected Components
- Graph connectivity
- Component counting
- Cycle detection
-
Dynamic Connectivity
- Online connectivity queries
- Real-time updates
- Network partitioning
-
Minimum Spanning Tree
- Kruskal’s algorithm
- Network design
- Clustering
-
Component Properties
- Size tracking
- Component merging
- Set operations
-
Graph Algorithms
- Cycle detection
- Connected components
- Path compression
-
Network Flow
- Network connectivity
- Cut problems
- Flow partitioning
Edge Cases to Consider
- Single Element Set
- Self-Union
- Invalid Elements
Optimization Techniques
- Path Compression with Recursion Elimination
- Rank Balancing
Memory Management
- Compact Representation
- Dynamic Allocation
Performance Considerations
- Batch Operations
- Size-based Optimization
Common Pitfalls
- Missing Path Compression
- Incorrect Rank Update
- Not Maintaining Component Count