Maison  >  Article  >  développement back-end  >  Comment obtenir la valeur moyenne d'un tableau en php

Comment obtenir la valeur moyenne d'un tableau en php

PHPz
PHPzoriginal
2023-04-23 10:09:071003parcourir

Dans le processus d'opérations sur les tableaux, il est parfois nécessaire d'obtenir la valeur intermédiaire dans le tableau, telle que la médiane du tableau. PHP est un langage très flexible et peut utiliser diverses méthodes pour obtenir la valeur intermédiaire d'un tableau. Dans cet article, nous présenterons plusieurs façons d’obtenir la valeur intermédiaire d’un tableau.

Méthode 1 : Prendre la médiane après le tri

Cette méthode est relativement simple. Il vous suffit de trier le tableau, puis de prendre la valeur médiane. 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 que vous utilisez, vous devez d’abord comprendre les opérations de base des tableaux afin de mieux les gérer.

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