Bagaimana cara kerjanya?
Pelajaran 3 dari 9 dalam kursus Algoritma Kruskal: Algoritma Graf di Coddy.
Union-find menyimpan array parent. Setiap vertex dimulai sebagai root-nya sendiri. Dua operasi mengendalikan semuanya:
- find(x): ikuti tautan
parentsampai kamu mencapai root (vertex yang menjadi parent bagi dirinya sendiri). Dua vertex terhubung jika keduanya memiliki root yang sama. - union(a, b): arahkan satu root ke root lainnya, lalu gabungkan kedua set.
Algoritma Kruskal:
- Proses edge dari bobot terkecil ke terbesar.
- Untuk setiap edge, cari root dari kedua ujungnya dengan
find. Jika keduanya berbeda, edge tersebut menghubungkan dua bagian yang terpisah: gabungkan keduanya denganuniondan tambahkan bobotnya ke total. - Jika root-nya sama, edge tersebut akan membentuk siklus, jadi lewati.
Setelah semua edge diproses, edge yang dipilih membentuk MST (untuk graph yang terhubung, tepat n - 1 edge).
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Algoritma Kruskal: Algoritma Graf
2Algoritma
Bagaimana cara kerjanya?Kode SemuImplementasi (Bagian 1)Implementasi (Bagian 2)Latihan sendiri: Compiler C online