zeopix/itinerary-sorter

一个PHP库,用于对无序的登机牌进行排序 — 编辑

dev-master 2016-09-02 09:05 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:25:43 UTC


README

Build Status Scrutinizer Code Quality

ItinerarySorter

根据一组构成完整行程的登机牌对旅行行程进行排序。

安装

####使用composer 包含此包

composer require zeopix/itinerary-sorter

用法

示例index.php

<?php
include './vendor/autoloader.php';

use ItinerarySorter\Application\ItinerarySorter;
use ItinerarySorter\Model\BoardingCard;
use ItinerarySorter\Model\Accommodation;
use ItinerarySorter\Model\BoardingCardCollection;

$boardingCards = [
    new BoardingCard(3, 'Barcelona', 'Madrid', new Accomodation('plane')),
    new BoardingCard(1, 'Stockholm', 'Lisboa', new Accomodation('plane')),
    new BoardingCard(2, 'Lisboa', 'Barcelona', new Accomodation('plane')),
];

$unsortedItinerary = new BoardingCardCollection();

$itinerarySorter = new ItinerarySorter();
$sortedItinerary = $itinerarySorter->sort($unsortedItinerary);

运行测试

vendor/bin/phpunit

模型

查看Model类别的phpdoc。

###实现说明

  • (贪婪)排序算法假设行程中只有一条路径。
  • 将array_unshift替换为SplFixedArray的实现将提高性能,因为在PHP中进行插入操作时,简单数组必须重新索引所有元素。