首页 > 编程语言 > 详细

归并排序

时间:2019-12-24 01:48:10      阅读:119      评论:0      收藏:0      [点我收藏+]
$arr=array(19,7,5,1,3,10);
	$tmp = mergeSort($arr);
	print_r($tmp);
	function mergeSort($arr){
		$start = 0;
		$end = count($arr)-1;
		if($end == 0){
			return $arr;
		}
		$mid = floor(($start+$end)/2);
		$arrChunk = array_chunk($arr,$mid+1);
		$left = mergeSort($arrChunk[0]);
		$right = mergeSort($arrChunk[1]);
		$arr3 = sort_data($left,$right);
		return $arr3;
	}
	function sort_data($arr1,$arr2){
		$arr=array();
		$i=$j=0;
		$len1=count($arr1);
		$len2 = count($arr2);
		while($i < $len1 && $j < $len2){
			if($arr1[$i] < $arr2[$j]){
				array_push($arr,$arr1[$i]);
				$i++;
			}
			else{
				array_push($arr,$arr2[$j]);
				$j++;
			}
		}
		while($i < count($arr1)){
			array_push($arr,$arr1[$i]);
			$i++;
		}

		while($j < count($arr2)){
			array_push($arr,$arr2[$j]);
			$j++;
		}

		return $arr;
	}

  

归并排序

原文:https://www.cnblogs.com/zh718594493/p/12089219.html

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