首頁 > 後端開發 > php教程 > 常見 PHP 數組函數的 Big-O 時間複雜度是多少?

常見 PHP 數組函數的 Big-O 時間複雜度是多少?

DDD
發布: 2024-12-07 11:01:12
原創
882 人瀏覽過

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

PHP 函數的 Big-O

使用 PHP 時,各種內建函數的效率可能會有很大差異。本文旨在深入了解他們的理論(或實踐)大 O 時間。

查找

  • array_key_exists:O(n),但實際上接近由於哈希查找,時間複雜度為 O(1)。
  • isset($array[$index]): O(n),也由於雜湊查找,接近 O(1)。
  • in_array:O(n),比基於哈希的查找慢。
  • array_search:O(n),與 in_array 類似。

佇列函數

  • array_push: O(Σ var_i, for all i)
  • array_pop: O(1)
  • array_shift: O(n), re -索引鍵。
  • array_unshift: O(n Σ var_i, for所有 i),因重新索引而變慢。

陣列交集、並集、減法

  • array_intersect_key: O(Max(param_i_size)* Σparam_i_count,對於所有Σ %。
  • array_intersect:O(n^2*Σparam_i_count,對於所有 i),如果交集為 100%。
  • array_intersect_assoc:與 array_intersect_key 類似。
  • array_diff: O(π param_i_size, 對所有 i),所有參數的乘積大小。
  • array_diff_key: O(Σ param_i_size, for i != 1)。

隨機

  • 隨機播放:O (n)
  • array_rand:O(n)

array_rand:O(n)

    明顯的Big-O
  • array_fill: O(n)
  • array_fill_keys: O(n)
  • 範圍:O(n)
  • array_splice: O(偏移長度)
  • array_slice: O(偏移長度) 或O(n) 若長度為NULL
  • array_keys: O(n )
  • 陣列值: O(n)

array_reverse: O(n)

    注意
  1. 所有計算假設雜湊查找為O(1 ).
  2. 漸近效能可能會因具體實現細節和輸入而異data.
陣列是從零開始的,因此array_push 會推送到陣列末端。

以上是常見 PHP 數組函數的 Big-O 時間複雜度是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板