尝试使用PHP堆
测试 PHP 堆栈。
最大堆
提供了SplMaxHeap类。
可以按降序取出。
$values = [1,9,3,4,2,4,0];
$maxHeap = new \SplMaxHeap();
foreach ($values as $value) {
$maxHeap->insert($value);
}
while($maxHeap->valid()) {
$this->info($maxHeap->extract());
}
9
4
4
3
2
1
0
最小堆
可以按照升序提取值。
$values = [1,9,3,4,2,4,0];
$maxHeap = new \SplMinHeap();
foreach ($values as $value) {
$maxHeap->insert($value);
}
while($maxHeap->valid()) {
$this->info($maxHeap->extract());
}
0
1
2
3
4
4
9