mgrechanik/kruskal

Kruskal算法的实现,用于找到最小生成树

1.0.0 2024-03-14 06:42 UTC

This package is auto-updated.

Last update: 2024-09-17 14:30:31 UTC


README

演示

构建最小生成树的示例: 使用Kruskal算法构建最小生成树的示例

安装

通过composer安装:

安装此库的首选方式是通过composer。

运行以下命令之一:

composer require --prefer-dist mgrechanik/kruskal

或者将以下内容添加到你的composer.json文件的require部分:

"mgrechanik/kruskal" : "~1.0.0"

如何使用

运行以下代码

use mgrechanik\kruskal\Kruskal;

$matrix = [
    [ 0 , 263, 184, 335],
    [263,  0 , 287, 157],
    [184, 287,  0 , 259],
    [335, 157, 259,  0]
];
$kruskal = new Kruskal($matrix);
if ($kruskal->run()) {
    // 1)
    var_dump($kruskal->getMinimumSpanningTree());
    // 2)
    var_dump($kruskal->getDistance());
}

我们将得到

  1. 作为边的数组的最小生成树
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 2
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 3
        )

)
  1. 树的所有距离
600

此代码将找到下一个路径

minimum spanning tree