affinity4/heap

全二叉堆实现,包含最大堆、最小堆,以及具有 O(nlogn) 时间复杂度和 O(1) 空间复杂度的堆排序算法

0.0.1 2024-07-13 16:09 UTC

This package is auto-updated.

Last update: 2024-09-13 16:27:40 UTC


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