PHP 関数の Big-O 時間計算量
この記事では、最も一般的に使用されるいくつかの PHP ビルド関数の理論的および実際的な Big-O 時間計算量をまとめて説明します。関数内。
検索関数
- isset( $array[$index] ) および array_key_exists: O(n) として分類されているにもかかわらず、これらの関数はほぼ O(1) のハッシュ ルックアップを実行します。
- in_array: 配列全体で線形検索を実行し、結果として O (n) complexity.
- array_search: in_array と似ていますが、値を返し、O(n) になります。 complexity.
キュー関数
- array_push: O(∑ var_i)
- array_pop: O(1)
- array_shift: O(n)
- array_unshift: O(n ∑ var_i)
配列の交差、結合、減算
- array_intersect_key: O(Max(param_i_size) ) * ∑param_i_count) の場合100% の交差、または 0% の交差の場合は O(∑param_i_size)。
- array_intersect: 100% の交差の場合は O(n^2 * ∑param_i_count)、0% の交差の場合は O(n^2)。
- array_intersect_assoc: に似ていますarray_intersect_key.
- array_diff: すべてのパラメータの場合は O(π param_i_size)。
- array_diff_key: 最初のパラメータと等しくないすべてのパラメータの場合は O(∑ param_i_size)。
- array_merge: O (∑ array_i) を除くすべてのパラメータ最初。
- (共用体): 2 番目の配列の O(n)。
- array_replace: すべてのパラメーターの O(∑ array_i)。
ランダム関数
- シャッフル: O(n)
- array_rand: O(n)
明らかな Big-O 関数
- array_fill、array_fill_keys: O(n)
- 範囲: O(n)
- array_splice、array_slice: O(オフセット長)
- array_keys、array_values: O(n)
- array_reverse: O(n)
- 配列パッド: O(pad_size)
- array_flip: O(n)
- array_sum、array_product: O(n)
- array_reduce: O(n)
- array_filter、配列マップ: O(n)
- 配列チャンク、配列結合: O(n)
以上が一般的な PHP 関数の最大の時間複雑さは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。