Skip to content

AleksKu/unit_calc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание Напишите на PHP функцию поиска самого дешевого маршрута. Функция должна получать на входе три параметра: название населенного пункта отправления, название населенного пункта прибытия, а также список, каждый элемент которого представляет собой названия неких двух населенных пунктов и стоимость проезда от одного населенного пункта до другого.

На выходе функция должна возвращать самый дешевый маршрут между населенными пунктами отправления и прибытия, в виде списка транзитных населенных пунктов (в порядке следования), а также общую стоимость проезда.

Пожалуйста, обратите внимание на то, что нас интересует не только правильность реализации алгоритма, но и общее качество кода. Код должен быть пригоден для включения в состав программного продукта. !


Решение

Для решение задачи используется алгоритм "Дейкстры".

Алгоритм можно заменить, установив его через метод TransportCalculator::setAlgorithm, например на алгоритм "Флойда-Уоршалла" или др.

Использование

Примеры выполнения в файлах: test.php и test2.php

$calc = new TransportCalculator($routes);
$calc->calc('Москва','Краснодар');

echo "маршрут:";
var_dump($calc->getPath());

echo "\n Стоимость проезда: ".$calc->getCost();

$routes - коллекция маршрутов со стоимостью, например:

$routes = [
    ['from'=>'Москва','to'=>'Самара','cost'=>2],
    ['from'=>'Москва','to'=>'Воронеж','cost'=>3],
    ...
    ];

Тесты

UnitTests - на данный момент отутствуют.

Roadmap

  • Рефакторинг
  • unit-тестирование
  • реализация других алгоритмов
  • тестирование на больших объемах данных

About

тестовое задание

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages