Maison >développement back-end >Problème PHP >Comment trouver la médiane d'un tableau en php
Comment trouver la médiane d'un tableau en PHP : 1. Obtenez la médiane après le tri, utilisez d'abord la fonction "sort()" pour trier, puis obtenez la valeur médiane 2. Utilisez la fonction de tableau pour trouver la médiane ; , utilisez d'abord la fonction "count()" pour obtenir la longueur du tableau, puis utilisez la fonction "array_slice()" pour supprimer le segment central du tableau, et enfin utilisez la fonction "array_sum()" pour additionner et diviser par la longueur ; 3. Utilisez la méthode "QuickSelect" pour trouver la médiane sans trier.
Le système d'exploitation de ce tutoriel : système windows10, version PHP8.1.3, ordinateur DELL G3.
Il existe trois façons de trouver la médiane d'un tableau en php :
Méthode 1 : Prendre la médiane après le tri
Cette méthode est relativement simple, il suffit de trier le tableau puis de prendre le milieu valeur. . Cependant, cette méthode présente un inconvénient évident, à savoir que la complexité temporelle du tri est de O(nlogn). Lorsque n est grand, la vitesse est relativement lente.
PHP fournit une fonction sort() qui peut trier le tableau, et nous pouvons utiliser cette fonction pour y parvenir.
Exemple de code :
function get_median($arr) { sort($arr); $count = count($arr); $middle = floor(($count - 1) / 2); if ($count % 2 == 0) { $median = ($arr[$middle] + $arr[$middle + 1]) / 2; } else { $median = $arr[$middle]; } return $median; }
Méthode 2 : Utiliser les fonctions de tableau pour trouver la médiane
PHP fournit des fonctions de tableau que nous pouvons utiliser pour calculer la valeur médiane d'un tableau. La méthode spécifique consiste à utiliser d'abord la fonction count() pour obtenir la longueur du tableau, puis à utiliser la fonction array_slice() pour supprimer le segment central du tableau, et enfin à utiliser la fonction array_sum() pour le résumer, et puis divisez-le par la longueur. Cette méthode est plus simple et plus rapide.
Exemple de code :
function get_median($arr) { sort($arr); $count = count($arr); $middle = floor(($count - 1) / 2); $median = ($count % 2 == 0) ? (array_sum(array_slice($arr, $middle, 2)) / 2) : $arr[$middle]; return $median; }
Méthode 3 : algorithme de sélection rapide
Les deux méthodes ci-dessus nécessitent de trier le tableau, la complexité temporelle est donc relativement élevée. Il existe en fait une méthode appelée QuickSelect qui permet de trouver la médiane sans trier. L'algorithme de sélection rapide présente de nombreuses similitudes avec l'algorithme de tri rapide, mais il ne nécessite qu'une partie du tri rapide, sa complexité temporelle est donc O(n).
Exemple de code :
function get_median($arr) { if (count($arr) % 2 == 0) { $k = count($arr) / 2; } else { $k = (count($arr) + 1) / 2; } return quick_select($arr, $k); } function quick_select(&$arr, $k) { if (count($arr) == 1) return $arr[0]; $p = $arr[0]; $f = $l = array(); foreach ($arr as $v) { if ($v < $p) $f[] = $v; elseif ($v > $p) $l[] = $v; } if ($k <= count($f)) { return quick_select($f, $k); } elseif ($k > count($arr) - count($l)) { return quick_select($l, $k - (count($arr) - count($l))); } else { return $p; } }
Les trois méthodes ci-dessus permettent d'obtenir la valeur intermédiaire d'un tableau. Différentes méthodes conviennent à différents scénarios. Si vous avez besoin d'obtenir plusieurs valeurs intermédiaires, vous pouvez utiliser une variante de la méthode ci-dessus. Quelle que soit la méthode utilisée, vous devez comprendre les opérations de base des tableaux avant de pouvoir mieux gérer les tableaux.
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!