首页 > 编程语言 > 详细

归并排序(php实现)

时间:2014-11-30 21:15:31      阅读:333      评论:0      收藏:0      [点我收藏+]
<?php 
function mergeSort(&$arr){
	$len = count($arr);
	
	msort($arr,0,$len-1);
}

function msort(&$arr,$low,$high){
	if($low<$high){
		$mid = floor(($low+$high)/2);
		msort($arr, $low, $mid);
		msort($arr,$mid+1,$high);
		mergeArray($arr,$low,$mid,$high);
	}
}

function mergeArray(&$arr,$low,$mid,$high){
	$i = $low;
	$j = $mid+1;
	
	while($i<=$mid && $j<=$high){
		if($arr[$i]<$arr[$j]){
			$tmp[] = $arr[$i++];
		}else{
			$tmp[] = $arr[$j++];
		}
		
	}
	
	while($i<=$mid){
		$tmp[] = $arr[$i++];
	}
	while($j<=$high){
		$tmp[] = $arr[$j++];
	}
	$len = count($tmp);
	for($k=0;$k<$len;$k++){
		$arr[$low+$k] = $tmp[$k];
	}
}

$arr = array(1,2,3,7,9,0,4,6,5,1);
mergeSort($arr);
print_r($arr);
?>

  

归并排序(php实现)

原文:http://www.cnblogs.com/taijun/p/4133644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!