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)
注意-
- 所有計算假設雜湊查找為O(1 ).
- 漸近效能可能會因具體實現細節和輸入而異data.
陣列是從零開始的,因此array_push 會推送到陣列末端。
以上是常見 PHP 數組函數的 Big-O 時間複雜度是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!