Maison  >  Article  >  développement back-end  >  Programme PHP pour trouver la paire la plus proche parmi deux tableaux triés

Programme PHP pour trouver la paire la plus proche parmi deux tableaux triés

PHPz
PHPzoriginal
2024-08-28 13:34:101138parcourir

PHP Program to find the Closest Pair from Two Sorted Arrays

Qu'est-ce que PHP ?

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. Il prend en charge un large éventail de frameworks de développement Web, tels que Laravel, Symfony et CodeIgniter, qui fournissent des outils et 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 trouver la paire la plus proche parmi deux tableaux triés

Étant donné deux tableaux triés et un nombre x, trouvez la paire dont la somme est la plus proche de x et la paire contient un élément de chaque tableau.

Entrée

ar1 = [1, 3, 5, 7, 9];
ar2 = [2, 4, 6, 8, 10];
x = 12;<b>
</b>

Sortie

Output is 1 and 10 because 1+10=11 which is closer to 12.

Exemple

<?php

function printClosest($ar1, $ar2,
					$m, $n, $x)
{

	$diff = PHP_INT_MAX;
	$res_l;
	$res_r;
	$l = 0;
	$r = $n - 1;
	while ($l < $m and $r >= 0) {
	   if (abs($ar1[$l] + $ar2[$r] - $x) < $diff){
	      $res_l = $l;
		  $res_r = $r;
		  $diff = abs($ar1[$l] + $ar2[$r] - $x);
		}

		if ($ar1[$l] + $ar2[$r] > $x)
		   $r--;
		else
		   $l++;
   }
   echo "The closest pair is [", $ar1[$res_l], ", ", $ar2[$res_r], "] <br>";
}
	$ar1 = array(1, 4, 8, 10);
	$ar2 = array(2, 6, 9);
	$m = count($ar1);
	$n = count($ar2);
	$x = 20;
	printClosest($ar1, $ar2, $m, $n, $x);
?>

Sortie

The closest pair is [10, 9]

Conclusion

En résumé, le programme PHP fourni utilise une technique à deux pointeurs pour trouver efficacement la paire la plus proche parmi deux tableaux triés. Cela commence par initialiser la différence entre la somme de la paire et le nombre donné, « x », comme valeur maximale. Le programme maintient deux index de résultat, res_l et res_r, pour stocker les indices de la paire la plus proche. En comparant la différence absolue de la somme de la paire actuelle avec x, le programme met continuellement à jour la paire la plus proche chaque fois qu'une paire plus proche est rencontrée. Il ajuste les pointeurs selon que la somme actuelle est supérieure ou inférieure à x, réduisant ainsi l'espace de recherche.

La complexité temporelle du programme dépend de la taille des tableaux d'entrée, m et n, car il effectue un balayage linéaire tout en parcourant les deux tableaux une fois. Sa complexité est donc O(m + n). Le programme PHP offre une solution efficace pour trouver la paire la plus proche parmi deux tableaux triés avec une somme la plus proche du nombre x donné. En utilisant une approche à deux points, il fournit une méthode simplifiée pour identifier la paire présentant la différence absolue minimale, offrant ainsi flexibilité et précision dans divers scénarios.

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!

Déclaration:
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
Article précédent:Héritage multiple en PHPArticle suivant:Héritage multiple en PHP