php で配列の中央値を見つける方法: 1. 並べ替え後に中央値を取得し、最初に「sort()」関数を使用して並べ替えてから、中央の値を取得します; 2. 配列関数を使用します。桁数の中央値を見つけるには、最初に「count()」関数を使用して配列の長さを取得し、次に「array_slice()」関数を使用して配列から中央のセグメントを取り出し、最後に「array_sum」を使用します。 ()」関数を使用して合計を計算し、長さで除算します。 3. 「QuickSelect」メソッドを使用すると、並べ替えずに中央値を見つけることができます。
このチュートリアルのオペレーティング システム: Windows 10 システム、PHP8.1.3 バージョン、DELL G3 コンピューター。
#php で配列の中央値を見つけるには 3 つの方法があります:
方法 1: 並べ替え後に中央値を取得する
この方法は比較的単純で、配列をソートして中央の値を取得するだけです。しかし、この方法には明らかな欠点があり、ソートの計算量は O(nlogn) であり、n が大きい場合には速度が相対的に遅くなります。 PHP には、配列を並べ替えることができる sort() 関数が用意されており、この関数を使用してそれを実現できます。 コード例: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; }
方法 2: 配列関数を使用して中央値を見つける
PHP にはいくつかの配列関数が用意されており、それらを使用して計算できます。配列の中央の値。具体的な方法は、まず count() 関数を使用して配列の長さを取得し、次に array_slice() 関数を使用して配列から中央のセグメントを取り出し、最後に array_sum() 関数を使用してそれを合計します。そしてそれを長さで割ります。この方法はより簡単で高速です。 コード例: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; }
方法 3: クイック選択アルゴリズム
上記 2 つの方法はどちらも配列の並べ替えが必要なため、時間の計算量は次のようになります。比較的高い高い。実は、並べ替えずに中央値を見つけることができる QuickSelect というメソッドがあります。クイック選択アルゴリズムはクイック ソート アルゴリズムと多くの類似点がありますが、クイック ソートの一部のみが必要なため、時間計算量は O(n) です。 コード例: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; } }
以上がPHPで配列の中央値を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。