An open API service indexing awesome lists of open source software.

https://github.com/mgrechanik/kruskal

Kruskal's algorithm finds a minimum spanning tree
https://github.com/mgrechanik/kruskal

graph kruskal kruskal-mst kruskals-algorithm minimum-cost-subgraph minimum-spanning-tree mst path-planning search-algorithm

Last synced: 6 months ago
JSON representation

Kruskal's algorithm finds a minimum spanning tree

Awesome Lists containing this project

README

          

# Kruskal's algorithm to find a minimum spanning tree

## Demo

Example of building a minimum spanning tree:
![Example of building a minimum spanning tree with kruskal's algorithm](https://raw.githubusercontent.com/mgrechanik/kruskal/main/docs/kruskal.jpg "Example of building a minimum spanning tree with kruskal's algorithm")

## Installing

#### Installing through composer::

The preferred way to install this library is through composer.

Either run
```
composer require --prefer-dist mgrechanik/kruskal
```

or add
```
"mgrechanik/kruskal" : "~1.0.0"
```
to the require section of your `composer.json`.

## How to use

Run the next code:
```php
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());
}
```
We will get:

1) Spanning tree as an array of edges
```
Array
(
[0] => Array
(
[0] => 0
[1] => 2
)

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

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

)
```

2) Distance of all tree

```
600
```

This code will find the next path:

![minimum spanning tree](https://raw.githubusercontent.com/mgrechanik/kruskal/main/docs/democode.jpg "minimum spanning tree")