zeopix / itinerary-sorter
一个PHP库,用于对无序的登机牌进行排序 — 编辑
dev-master
2016-09-02 09:05 UTC
Requires (Dev)
- phpunit/phpunit: 5.5.*
This package is not auto-updated.
Last update: 2024-09-14 19:25:43 UTC
README
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中进行插入操作时,简单数组必须重新索引所有元素。