除了手工計算數組之外,是否有方法或資源來查找PHP中數組實現的時間和空間複雜度?PHP數組的時間/空間複雜度
PHP中的數組實際上是一個有序映射。地圖是一種將值與鍵關聯的類型。這種類型針對多種不同用途進行了優化;它可以被看作是一個數組,列表(向量),散列表(一個映射的實現),字典,集合,堆棧,隊列等等。由於數組值可以是其他數組,因此樹和多維數組也是可能的。 - php.net
從我可以告訴它似乎它有一個地圖
除了手工計算數組之外,是否有方法或資源來查找PHP中數組實現的時間和空間複雜度?PHP數組的時間/空間複雜度
PHP中的數組實際上是一個有序映射。地圖是一種將值與鍵關聯的類型。這種類型針對多種不同用途進行了優化;它可以被看作是一個數組,列表(向量),散列表(一個映射的實現),字典,集合,堆棧,隊列等等。由於數組值可以是其他數組,因此樹和多維數組也是可能的。 - php.net
從我可以告訴它似乎它有一個地圖
因爲它就像一個哈希表的總體複雜性,你會被一個鍵訪問元素時有O(1)
時間。
如果您正在循環訪問數組,那麼自然會有O(n)
時間。
如果你有時間,你其實可以看看PHP的implementation of array here
訪問和迭代由@麥克·劉易斯形容到目前爲止
錯過了什麼?
除了什麼@Mike劉易斯說,我要補充的是,在一個PHP數組元素佔據的52個字節(proof)
在平均情況下最小是O(1)但最壞的情況下是O( n)惡意處理:http://murilo.wordpress.com/2013/10/16/deeper-look-at-phps-array-worst-case/ – 2013-10-19 04:29:24