Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Programm für den Median zweier sortierter Arrays gleicher Größe

PHP-Programm für den Median zweier sortierter Arrays gleicher Größe

王林
王林Original
2024-08-28 13:39:37676Durchsuche

PHP Program for Median of two Sorted Arrays of Same Size

PHP (Hypertext Preprocessor) ist eine beliebte Skriptsprache für die Webentwicklung. Es wird häufig zum Erstellen dynamischer und interaktiver Webseiten verwendet. PHP-Code kann direkt in HTML eingebettet werden, sodass Entwickler PHP und HTML nahtlos kombinieren können. PHP kann sich mit Datenbanken verbinden, Formulardaten verarbeiten, dynamische Inhalte generieren, Datei-Uploads verarbeiten, mit Servern interagieren und verschiedene serverseitige Aufgaben ausführen.

PHP unterstützt eine breite Palette von Webentwicklungs-Frameworks wie Laravel, Symfony und CodeIgniter, die zusätzliche Tools und Funktionen zum Erstellen von Webanwendungen bereitstellen. PHP ist eine Open-Source-Sprache mit einer großen Community, umfangreicher Dokumentation und einem umfangreichen Ökosystem an Bibliotheken und Erweiterungen.

PHP-Programm für den Median zweier sortierter Arrays gleicher Größe

Der Median ist ein Wert, der die höhere Hälfte von der unteren Hälfte des Datensatzes trennt. Um den Median eines Arrays zu berechnen, müssen Sie die mittleren Elemente des sortierten Arrays berücksichtigen.

Beispiel

<?php
// A Simple Merge based O(n) solution
// to find median of two sorted arrays

// This function returns median of
// ar1[] and ar2[]. Assumptions in
// this function: Both ar1[] and ar2[]
// are sorted arrays Both have n elements
function getMedian($ar1, $ar2, $n)
{
	// Current index of i/p array ar1[]
	$i = 0;

	// Current index of i/p array ar2[]
	$j = 0;
	$count;
	$m1 = -1; $m2 = -1;

	// Since there are 2n elements,
	// median will be average of elements
	// at index n-1 and n in the array
	// obtained after merging ar1 and ar2
	for ($count = 0; $count <= $n; $count++)
	{
		// Below is to handle case where
		// all elements of ar1[] are smaller
		// than smallest(or first) element of ar2[]
		if ($i == $n)
		{
			$m1 = $m2;
			$m2 = $ar2[0];
			break;
		}

		// Below is to handle case where all
		// elements of ar2[] are smaller than
		// smallest(or first) element of ar1[]
		else if ($j == $n)
		{
			$m1 = $m2;
			$m2 = $ar1[0];
			break;
		}

		if ($ar1[$i] < $ar2[$j])
		{
			// Store the prev median
			$m1 = $m2;
			$m2 = $ar1[$i];
			$i++;
		}
		else
		{
			// Store the prev median
			$m1 = $m2;
			$m2 = $ar2[$j];
			$j++;
		}
	}

	return ($m1 + $m2) / 2;
}

// Driver Code
$ar1 = array(1, 3, 5, 7, 9, 11);
$ar2 = array(12, 10 ,8 ,6 ,4, 2);

$n1 = sizeof($ar1);
$n2 = sizeof($ar2);
if ($n1 == $n2)
	echo("Median is " .
		getMedian($ar1, $ar2, $n1));
else
	echo("Doesn't work for arrays".
		"of unequal size");

?>

Ausgabe

Es wird die folgende Ausgabe erzeugt:

Median is 11.5

Erklärung des Codes

Der bereitgestellte Code implementiert eine einfache zusammenführungsbasierte Lösung, um den Median zweier sortierter Arrays, $ar1 und $ar2, derselben Größe zu ermitteln. Die Funktion getMedian verwendet die beiden Eingabearrays und die Größe n als Parameter. Es initialisiert Variablen, um die aktuellen Indizes, Zähler und vorherigen Mediane zu verfolgen. Es iteriert die Anzahl von 0 bis n und vergleicht Elemente aus beiden Arrays. Basierend auf den Vergleichsergebnissen werden die vorherigen und aktuellen Mediane entsprechend aktualisiert.

Die Funktion behandelt Fälle, in denen die Elemente eines Arrays kleiner sind als die Elemente des anderen Arrays. Schließlich wird der berechnete Median zurückgegeben, indem der vorherige und der aktuelle Median gemittelt werden. Im bereitgestellten Beispiel erstellt der Treibercode zwei Arrays, $ar1 und $ar2, und berechnet deren Größe. Es ruft die Funktion getMedian auf, um den Median der Arrays zu ermitteln, und gibt das Ergebnis aus. Wenn die Arrays ungleiche Größen haben, wird eine Fehlermeldung angezeigt.

Im Beispiel enthält $ar1 [1, 3, 5, 7, 9, 11] und $ar2 [12, 10, 8, 6, 4, 2]. Beide Arrays haben die gleiche Länge, sodass der Algorithmus fortfahren kann. Die Iteration schreitet voran, indem die Elemente in den Arrays verglichen werden, und der Median wird entsprechend aktualisiert. Schließlich wird der Median als (11 + 12) / 2 berechnet, was zu einem Medianwert von 11,5 führt. Daher lautet die Ausgabe des Codes „Median ist 11,5“.

Fazit

PHP bietet einen fusionsbasierten Ansatz, um den Median zweier sortierter Arrays gleicher Größe zu ermitteln. Durch das Zusammenführen der Arrays und die Berücksichtigung der beiden mittleren Elemente ermittelt das Programm den Median genau. Es verwendet zwei Indizes, um die Arrays zu durchlaufen, Elemente zu vergleichen und die Medianvariablen entsprechend zu aktualisieren.

Der resultierende Median ist der Durchschnitt der mittleren Elemente, wenn die Array-Länge gerade ist, oder des mittleren Elements, wenn sie ungerade ist. Diese effiziente O(n)-Lösung bietet eine zuverlässige und unkomplizierte Methode zur Berechnung des Medians zweier sortierter Arrays gleicher Größe in PHP.

Das obige ist der detaillierte Inhalt vonPHP-Programm für den Median zweier sortierter Arrays gleicher Größe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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