affinity4/heap
全二叉堆实现,包含最大堆、最小堆,以及具有 O(nlogn) 时间复杂度和 O(1) 空间复杂度的堆排序算法
0.0.1
2024-07-13 16:09 UTC
Requires (Dev)
- phpunit/phpunit: ^10.5
README
Heap 类是 PHP 中最大堆数据结构的实现。堆是一种完全二叉树,其中每个节点的值都大于或等于其子节点的值,这使得它在高效查找最大元素方面非常有用。
特性
- 堆构建:使用数组初始化堆并构建最大堆。
- 插入:向堆中添加新元素。
- 删除:从堆中删除特定元素。
- 排序:执行堆排序并返回按升序或降序排序的数组。
安装
通过 composer 安装 Heap 类
composer require affinity4/heap
用法
以下是如何使用 Heap 类的示例
<?php require_once __DIR__ . '/vendor/autoload.php'; use Affinity4\Heap\Heap; // Initialize the heap with an array $initialArray = [3, 10, 5, 1, 2, 7]; $heap = new Heap($initialArray); // Insert a new value $heap->insert(12); // Sort the heap $sortedArray = $heap->sort(); echo "Sorted Array: " . implode(', ', $sortedArray) . "\n"; // Remove a value from the heap $heap->remove(5); echo "Heap after removing 5: " . implode(', ', $heap->heap) . "\n";
测试
使用以下命令运行测试
./vendor/bin/phpunit