ホームページ >バックエンド開発 >PHPチュートリアル >一般的な PHP 関数の最大の時間複雑さは何ですか?

一般的な PHP 関数の最大の時間複雑さは何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 02:23:10416ブラウズ

What are the Big-O Time Complexities of Common PHP Functions?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。