Heim > Backend-Entwicklung > PHP-Tutorial > Datenstruktur (8) Sortierung zusammenführen

Datenstruktur (8) Sortierung zusammenführen

WBOY
Freigeben: 2016-08-08 09:32:11
Original
1114 Leute haben es durchsucht
Implementierung des Sortieralgorithmus zusammenführen:
<?php
	
	//归并排序

	function all_array_merge($arrA,$arrB){
		$arrC=array();
	
		$i=$j=$k=0;
		$arrA_length=count($arrA);
		$arrB_length=count($arrB);
		while($i<$arrA_length && $j<$arrB_length){
			if($arrA[$i]<$arrB[$j]){
				$arrC[]=$arrA[$i++];
			}else{
				$arrC[]=$arrB[$j++];
			}
		}
		while($i<$arrA_length){
			$arrC[]=$arrA[$i++];
		}
		while($j<$arrB_length){
			$arrC[]=$arrB[$j++];
		}

		return $arrC;
	}

	function array_merge_sort($array){
		$length=count($array);
		if($length<=1){
			return $array;
		}
		$mid=intval($length/2);//取数组中间元素的坐标
		$array_left=array_slice($array,0,$mid);//拆分元素0-mid折部分给左边$array_left
		$array_right=array_slice($array,$mid);//拆分数组mid-$length-1这部分给右边$array_right
		$array_left=array_merge_sort($array_left);//左边拆分完后开始递归合并
		$array_right=array_merge_sort($array_right);//右边拆分完后开始递归
		$result=all_array_merge($array_left,$array_right);//合并两个数组,递归合并)
		return $result;
	}

	$arr=array(456,35,77,356,33,98,11,44,82);
	$res=array_merge_sort($arr);
	foreach($res as $key => $value){
		echo "key: ".$key."    value: ".$value."<br/>";
	}
?>
Nach dem Login kopieren

Das Obige stellt die Zusammenführungssortierung der Datenstruktur (8) vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage