Maison > développement back-end > tutoriel php > Programme PHP pour la médiane de deux tableaux triés de même taille

Programme PHP pour la médiane de deux tableaux triés de même taille

王林
Libérer: 2024-08-28 13:39:37
original
688 Les gens l'ont consulté

PHP Program for Median of two Sorted Arrays of Same Size

PHP (Hypertext Preprocessor) est un langage de script populaire conçu pour le développement Web. Il est largement utilisé pour créer des pages Web dynamiques et interactives. Le code PHP peut être intégré directement dans HTML, permettant aux développeurs de mélanger PHP et HTML de manière transparente. PHP peut se connecter à des bases de données, traiter les données des formulaires, générer du contenu dynamique, gérer les téléchargements de fichiers, interagir avec les serveurs et effectuer diverses tâches côté serveur.

PHP prend en charge un large éventail de frameworks de développement Web, tels que Laravel, Symfony et CodeIgniter, qui fournissent des outils et des fonctionnalités supplémentaires pour créer des applications Web. PHP est un langage open source avec une large communauté, une documentation complète et un riche écosystème de bibliothèques et d'extensions.

Programme PHP pour la médiane de deux tableaux triés de même taille

La médiane est une valeur qui sépare la moitié supérieure de la moitié inférieure de l'ensemble de données. Pour calculer la médiane d'un tableau, vous devez prendre en compte le ou les éléments du milieu du tableau trié.

Exemple

<?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");

?>
Copier après la connexion

Sortie

Il produira le résultat suivant :

Median is 11.5
Copier après la connexion

Explication du code

Le code fourni implémente une solution simple basée sur la fusion pour trouver la médiane de deux tableaux triés, $ar1 et $ar2, de même taille. La fonction getMedian prend les deux tableaux d'entrée et la taille n comme paramètres. Il initialise les variables pour garder une trace des indices actuels, des compteurs et des médianes précédentes. Il itère de 0 à n, en comparant les éléments des deux tableaux. Il met à jour les médianes précédentes et actuelles en conséquence sur la base des résultats de la comparaison.

La fonction gère les cas où les éléments d'un tableau sont plus petits que les éléments de l'autre tableau. Enfin, il renvoie la médiane calculée en faisant la moyenne des médianes précédentes et actuelles. Dans l'exemple fourni, le code du pilote crée deux tableaux, $ar1 et $ar2, et calcule leurs tailles. Il appelle la fonction getMedian pour trouver la médiane des tableaux et imprime le résultat. Si les tableaux ont des tailles inégales, un message d'erreur s'affiche.

Dans l'exemple, $ar1 contient [1, 3, 5, 7, 9, 11] et $ar2 contient [12, 10, 8, 6, 4, 2]. Les deux tableaux ont la même longueur, l’algorithme peut donc continuer. L'itération progresse en comparant les éléments des tableaux et la médiane est mise à jour en conséquence. Enfin, la médiane est calculée comme (11 + 12) / 2, ce qui donne une valeur médiane de 11,5. Par conséquent, la sortie du code sera « La médiane est de 11,5 ».

Conclusion

PHP propose une approche basée sur la fusion pour trouver la médiane de deux tableaux triés de même taille. En fusionnant les tableaux et en considérant les deux éléments du milieu, le programme détermine avec précision la médiane. Il utilise deux indices pour parcourir les tableaux, en comparant les éléments et en mettant à jour les variables médianes en conséquence.

La médiane résultante est la moyenne des éléments du milieu si la longueur du tableau est paire ou de l'élément du milieu si elle est impaire. Cette solution O(n) efficace fournit une méthode fiable et simple pour calculer la médiane de deux tableaux triés de même taille en PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal