數據結構(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/>";
	}


發佈了32 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章