数据结构(6)堆排序

堆排序:

function heapadjust($array,$i,$n){
		
		for($tmp=$array[$i];(2*$i+1)<$n;$i=$child){
			$child=(2*$i+1);
			if($child!=$n-1 && $array[$child+1]> $array[$child])
					$child++;
			if($tmp<$array[$child])
				$array[$i]=$array[$child];
			else
				break;
		}
		$array[$i]=$tmp;
		
	}

	function heap_sort($array){
		$count=count($array);
		for($i=$count/2;$i>=0;$i--){
			heapadjust($array,$i,$count);
		}
	
		for($i=$count-1;$i>0;$i--){
			$tmp=$array[0];
			$array[0]=$array[$i];
			$array[$i]=$tmp;
			heapadjust($array,0,$i);
		}

		return $array;
	}




	$arr=array(44,14,55,32,876,32,65,11);
	$res=heap_sort($arr);
	foreach ($res as $key => $value){
		echo $key."   ".$value."<br/>";
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值