Heim > Backend-Entwicklung > PHP-Problem > So finden Sie den Median eines Arrays in PHP

So finden Sie den Median eines Arrays in PHP

百草
Freigeben: 2023-06-12 14:51:40
Original
1821 Leute haben es durchsucht

So finden Sie den Median eines Arrays in PHP: 1. Ermitteln Sie den Median nach dem Sortieren, verwenden Sie zuerst die Funktion „sort()“ zum Sortieren und ermitteln Sie dann den Mittelwert. 2. Verwenden Sie die Array-Funktion, um den Median zu ermitteln Verwenden Sie zuerst die Funktion „count()“, um die Länge des Arrays zu ermitteln, verwenden Sie dann die Funktion „array_slice()“, um das mittlere Segment aus dem Array zu entfernen, und verwenden Sie schließlich die Funktion „array_sum()“, um zu summieren und zu dividieren nach der Länge; 3. Verwenden Sie die Methode „QuickSelect“, um den Median ohne Sortierung zu ermitteln.

So finden Sie den Median eines Arrays in PHP

Das Betriebssystem dieses Tutorials: Windows10-System, PHP8.1.3-Version, DELL G3-Computer.

Es gibt drei Möglichkeiten, den Median eines Arrays in PHP zu ermitteln:

Methode 1: Ermitteln Sie den Median nach dem Sortieren.

Diese Methode ist relativ einfach. Sie müssen nur das Array sortieren und dann den Mittelwert ermitteln Wert. . Diese Methode weist jedoch einen offensichtlichen Nachteil auf, nämlich dass die zeitliche Komplexität der Sortierung O(nlogn) beträgt. Wenn n groß ist, ist die Geschwindigkeit relativ langsam.

PHP bietet eine sort()-Funktion, die das Array sortieren kann, und wir können diese Funktion verwenden, um dies zu erreichen.

Codebeispiel:

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;
}
Nach dem Login kopieren

Methode 2: Verwenden Sie Array-Funktionen, um den Median zu ermitteln.

PHP bietet einige Array-Funktionen, mit denen wir den Medianwert eines Arrays berechnen können. Die spezifische Methode besteht darin, zuerst die Funktion count() zu verwenden, um die Länge des Arrays zu ermitteln, dann die Funktion array_slice() zu verwenden, um das mittlere Segment aus dem Array zu entfernen, und schließlich die Funktion array_sum() zu verwenden, um es zusammenzufassen Dann dividiere es durch die Länge. Diese Methode ist einfacher und schneller.

Codebeispiel:

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;
}
Nach dem Login kopieren

Methode 3: Schnellauswahlalgorithmus

Beide der oben genannten Methoden erfordern das Sortieren des Arrays, daher ist die zeitliche Komplexität relativ hoch. Es gibt tatsächlich eine Methode namens QuickSelect, mit der der Median ohne Sortierung ermittelt werden kann. Der Schnellauswahlalgorithmus weist viele Ähnlichkeiten mit dem Schnellsortierungsalgorithmus auf, erfordert jedoch nur einen Teil der Schnellsortierung, sodass seine Zeitkomplexität O (n) beträgt.

Codebeispiel:

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;
    }
}
Nach dem Login kopieren

Die oben genannten drei Methoden zum Erhalten des Zwischenwerts eines Arrays. Verschiedene Methoden eignen sich für verschiedene Szenarien. Wenn Sie mehrere Zwischenwerte benötigen, können Sie eine Variation der oben genannten Methode verwenden. Unabhängig von der Methode müssen Sie die grundlegenden Operationen von Arrays verstehen, bevor Sie mit Arrays besser umgehen können.

Das obige ist der detaillierte Inhalt vonSo finden Sie den Median eines Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage