Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program PHP untuk Median dua Tatasusunan Diisih Saiz Sama

Program PHP untuk Median dua Tatasusunan Diisih Saiz Sama

王林
王林asal
2024-08-28 13:39:37657semak imbas

PHP Program for Median of two Sorted Arrays of Same Size

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.

PHP menyokong pelbagai rangka kerja pembangunan web, seperti Laravel, Symfony dan CodeIgniter, yang menyediakan alatan 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 Median Dua Tatasusunan Isih Saiz Sama

Median ialah nilai yang memisahkan separuh lebih tinggi daripada separuh bawah set data. Untuk mengira median tatasusunan, anda perlu mempertimbangkan elemen tengah tatasusunan yang diisih.

Contoh

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

?>

Output

Ia akan menghasilkan output berikut:

Median is 11.5

Penjelasan kod

Kod yang disediakan melaksanakan penyelesaian berasaskan gabungan mudah untuk mencari median dua tatasusunan yang diisih, $ar1 dan $ar2, dengan saiz yang sama. Fungsi getMedian mengambil dua tatasusunan input dan saiz n sebagai parameter. Ia memulakan pembolehubah untuk menjejaki indeks semasa, pembilang dan median sebelumnya. Ia melelakan kiraan dari 0 hingga n, membandingkan elemen daripada kedua-dua tatasusunan. Ia mengemas kini median sebelumnya dan semasa dengan sewajarnya berdasarkan hasil perbandingan.

Fungsi ini mengendalikan kes di mana satu elemen tatasusunan lebih kecil daripada elemen tatasusunan yang lain. Akhir sekali, ia mengembalikan median yang dikira dengan purata median sebelumnya dan semasa. Dalam contoh yang diberikan, kod pemacu mencipta dua tatasusunan, $ar1 dan $ar2, dan mengira saiznya. Ia memanggil fungsi getMedian untuk mencari median tatasusunan dan mencetak hasilnya. Jika tatasusunan mempunyai saiz yang tidak sama, mesej ralat dipaparkan.

Dalam contoh, $ar1 mengandungi [1, 3, 5, 7, 9, 11] dan $ar2 mengandungi [12, 10, 8, 6, 4, 2]. Kedua-dua tatasusunan mempunyai panjang yang sama, jadi algoritma boleh diteruskan. Lelaran berlangsung dengan membandingkan elemen dalam tatasusunan, dan median dikemas kini dengan sewajarnya. Akhir sekali, median dikira sebagai (11 + 12) / 2, menghasilkan nilai median 11.5. Oleh itu, output kod akan menjadi "Median ialah 11.5".

Kesimpulan

PHP menawarkan pendekatan berasaskan gabungan untuk mencari median dua tatasusunan disusun dengan saiz yang sama. Dengan menggabungkan tatasusunan dan mempertimbangkan dua elemen tengah, atur cara menentukan median dengan tepat. Ia menggunakan dua indeks untuk melintasi tatasusunan, membandingkan elemen dan mengemas kini pembolehubah median dengan sewajarnya.

Median yang terhasil ialah purata elemen tengah jika panjang tatasusunan genap atau elemen tengah jika ganjil. Penyelesaian O(n) yang cekap ini menyediakan kaedah yang boleh dipercayai dan mudah untuk mengira median dua tatasusunan yang disusun dengan saiz yang sama dalam PHP.

Atas ialah kandungan terperinci Program PHP untuk Median dua Tatasusunan Diisih Saiz Sama. 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