Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program PHP untuk mencari Pasangan Terdekat daripada Dua Tatasusunan Diisih

Program PHP untuk mencari Pasangan Terdekat daripada Dua Tatasusunan Diisih

PHPz
PHPzasal
2024-08-28 13:34:101126semak imbas

PHP Program to find the Closest Pair from Two Sorted Arrays

Apakah itu PHP?

PHP (Hypertext Preprocessor) ialah bahasa skrip popular yang direka untuk pembangunan web. Ia digunakan secara meluas untuk mencipta halaman web yang dinamik dan interaktif. Kod PHP boleh dibenamkan terus ke dalam HTML, membolehkan pembangun mencampurkan PHP dan HTML dengan lancar. PHP boleh menyambung ke pangkalan data, memproses data borang, menjana kandungan dinamik, mengendalikan muat naik fail, berinteraksi dengan pelayan dan melaksanakan pelbagai tugas bahagian pelayan. Ia menyokong pelbagai rangka kerja pembangunan web, seperti Laravel, Symfony dan CodeIgniter, yang menyediakan alat dan ciri tambahan untuk membina aplikasi web. PHP ialah bahasa sumber terbuka dengan komuniti yang besar, dokumentasi yang luas, dan ekosistem perpustakaan dan sambungan yang kaya.

Program PHP untuk mencari Pasangan Terdekat daripada Dua Tatasusunan Tersusun

Diberi dua tatasusunan diisih dan nombor x, cari pasangan yang jumlahnya paling hampir dengan x dan pasangan itu mempunyai elemen daripada setiap tatasusunan.

Input

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

Output

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

Contoh

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

Output

The closest pair is [10, 9]

Kesimpulan

Ringkasnya, Program PHP yang disediakan menggunakan teknik dua mata untuk mencari pasangan terdekat dengan cekap daripada dua tatasusunan yang disusun. Ia bermula dengan memulakan perbezaan antara jumlah pasangan dan nombor yang diberikan, "x," sebagai nilai maksimum. Program ini mengekalkan dua indeks hasil, res_l dan res_r, untuk menyimpan indeks pasangan terdekat. Dengan membandingkan perbezaan mutlak jumlah pasangan semasa dengan x, program sentiasa mengemas kini pasangan terdekat setiap kali pasangan yang lebih hampir ditemui. Ia melaraskan penunjuk berdasarkan sama ada jumlah semasa lebih besar atau lebih kecil daripada x, dengan berkesan mengecilkan ruang carian.

Kerumitan masa program bergantung pada saiz tatasusunan input, m dan n, kerana ia melakukan imbasan linear sambil melintasi kedua-dua tatasusunan sekali. Oleh itu, ia mempunyai kerumitan O(m + n). Program PHP menawarkan penyelesaian yang cekap untuk mencari pasangan terdekat daripada dua tatasusunan yang diisih dengan jumlah yang paling hampir dengan nombor x yang diberikan. Dengan menggunakan pendekatan dua mata, ia menyediakan kaedah yang diperkemas untuk mengenal pasti pasangan dengan perbezaan mutlak minimum, memberikan fleksibiliti dan ketepatan dalam pelbagai senario.

Atas ialah kandungan terperinci Program PHP untuk mencari Pasangan Terdekat daripada Dua Tatasusunan Diisih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Warisan Berbilang dalam PHPArtikel seterusnya:Warisan Berbilang dalam PHP