github地址: https://github.com/luolaifa000/phpStudyCode/blob/master/HeapSort.php
<?php
function pre($arr)
{
$data = func_get_args();
foreach($data as $key=>$val)
{
echo '<pre>';
print_r($val);
echo '</pre>';
}
}
function prend()
{
$data = func_get_args();
foreach($data as $key=>$val)
{
echo '<pre>';
print_r($val);
echo '</pre>';
}
exit();
}
/**
*
* 构建大堆序
*
* @author laifaluo
*
*/
class HeapSort {
public $data;
public function __construct(Array $array)
{
$this->data = $array;
}
/**
* 将数组初始化构建堆
* 从最后一个非叶子节点开始,递归到第0个, index = n/2 -1
*
*/
public function buildMaxHeap()
{
$noLeafNodeIndex = floor(count($this->data)/2) - 1;
for ($i = $noLeafNodeIndex; $i>=0; $i--) {
$this->adjustMaxHeap($i,count($this->data));
}
pre("构建后",$this->data);
//prend($noLeafNodeIndex);
}
/**
* 交换头尾,在构建堆
*
*/
public function sortMaxHeap()
{