Algoritma Kruskal ialah algoritma tamak yang digunakan untuk menyelesaikan masalah pokok rentang minimum. Pokok rentang minimum ialah pokok rentang dengan jumlah pemberat tepi terkecil dalam graf tidak terarah yang disambungkan. Algoritma Kruskal memilih tepi mengikut tertib daripada pemberat tepi yang kecil ke yang besar Apabila tepi yang dipilih tidak membentuk kitaran, ia ditambah pada pokok rentang. Proses pelaksanaan khusus adalah seperti berikut:
Isih semua tepi mengikut pemberat tepi dari kecil ke besar.
Pilih tepi secara bergilir-gilir Jika kedua-dua titik hujung tepi yang dipilih tidak berada dalam komponen yang disambungkan yang sama, tambahkan tepi ini pada pepohon rentang minimum dan gabungkan kedua-dua titik hujung ke dalam sambungan yang sama. komponen.
Sehingga pokok rentang minimum mengandungi semua bucu dalam graf. Kelebihan algoritma
ialah ia hanya perlu memberi perhatian kepada berat tepi dan tiada kaitan dengan darjah bucu, jadi ia juga boleh menunjukkan prestasi yang lebih baik dalam graf padat. Pada masa yang sama, algoritma Kruskal juga mempunyai kebolehskalaan yang baik dan boleh mengendalikan masalah hutan rentang minimum dalam graf berwajaran dengan mudah.
Isih semua tepi mengikut berat dari kecil ke besar; kedua-dua nod yang disambungkan oleh tepi ini tidak berada dalam komponen yang disambungkan yang sama, tambahkan tepi ini pada pokok spanning dan gabungkan kedua-dua nod menjadi satu komponen yang disambungkan; berada dalam komponen bersambung yang sama, pokok yang dihasilkan pada masa ini ialah pokok rentang minimum.
Semasa proses pelaksanaan, set pencarian kesatuan biasanya digunakan untuk mengekalkan ketersambungan bagi meningkatkan kecekapan.
Atas ialah kandungan terperinci Kod Java untuk melaksanakan algoritma Kruskal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!