union-find یا disjoint set عنصرها را در گروه‌های بدون اشتراک نگه می‌دارد. Find(x) نماینده‌ی گروه x را برمی‌گرداند و Union(a, b) دو گروه را ادغام می‌کند. با path compression و union by size، کل دنباله‌ی عملیات طبق منابع تقریباً خطی است.