rnix / bubble-sorter
一个过度设计的冒泡排序实现
dev-master
2019-02-12 14:26 UTC
Requires
- php: ^7.2
Requires (Dev)
- phpstan/phpstan: ^0.11.1
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-13 02:53:58 UTC
README
一个可以使用冒泡排序对项目进行排序的库。使用面向对象编程、SOLID原则和热爱编写。
排序
$floatsToSort = [5, 8, 3, 12, 3]; $comparer = new \BubbleSorter\Comparer\FloatComparer(); $floatItemsCreator = new \BubbleSorter\Item\Creator\FloatCreator(); $floatItemsFromListCreator = new \BubbleSorter\Item\Creator\FloatsFromListCreator($floatItemsCreator); $items = $floatItemsFromListCreator->createFromList(...$floatsToSort); $collection = new \BubbleSorter\Collection\Collection(...$items); $indexesGeneratorFactory = new \BubbleSorter\Generator\Factory\IndexesGeneratorFactory(); $indexesGeneratorBuilder = new \BubbleSorter\Generator\Builder\Builder($indexesGeneratorFactory); $comparer = new \BubbleSorter\Comparer\FloatComparer(); $swapper = new \BubbleSorter\Swapper\Swapper(); $sorter = new \BubbleSorter\Sorter\Sorter($indexesGeneratorBuilder, $comparer, $swapper); $sortedCollection = $sorter->sort($collection); $itemsGeneratorFactory = new \BubbleSorter\Generator\Factory\ItemsGeneratorFactory(); $itemsGeneratorBuilder = new \BubbleSorter\Generator\Builder\Builder($itemsGeneratorFactory); $extractor = new \BubbleSorter\Item\Extractor\FloatsToArrayExtractor($itemsGeneratorBuilder); $sortedFloats = $extractor->extract($sortedCollection); print_r($sortedFloats);
输出
Array
(
[0] => 3
[1] => 3
[2] => 5
[3] => 8
[4] => 12
)
请参阅 example 目录中的示例。
测试
工作正在进行中。
许可证
MIT许可证