區別:1、數組靜態分配內存,鍊錶動態分配內存;2、數組在內存中連續,鍊錶不連續;3、數組元素在棧區,鍊錶元素在堆區;4、數組定位元素的時間複雜度為O(1),鍊錶為O(n);5、陣列插入或刪除元素的時間複雜度為O(n),鍊錶為O(1)。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
什麼是鍊錶
鍊錶是一種實體儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是透過鍊錶中的指標連結順序來實現的。
鍊錶由一系列結點(鍊錶中每一個元素稱為結點)組成,結點可以在運行時動態產生。
每個結點包含兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點位址的指標域。
什麼是陣列
陣列就是一組資料的集合,把一系列資料組織起來,形成一個可操作的整體。 PHP 中的陣列較為複雜,但比其他許多高階語言中的陣列更為靈活。
數組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。
陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。
php中鍊錶和陣列的比較
#陣列在記憶體中連續,鍊錶不連續;
由於不同的儲存方式導致數組靜態分配內存,鍊錶動態分配內存,數組元素在棧區,鍊錶元素在堆區;
由於陣列在記憶體中連續,我們可以利用下標定位,時間複雜度為O(1),鍊錶定位元素時間複雜度O(n);
總結一下,數組和鍊錶的區別如下
#1.數組靜態分配內存,鍊錶動態分配內存 2.數組在記憶體中連續,鍊錶不連續3.數組元素在棧區,鍊錶元素在堆區4.數組利用下標定位,時間複雜度為O( 1),鍊錶定位元素時間複雜度O(n);5.陣列插入或刪除元素的時間複雜度O(n),鍊錶的時間複雜度O(1)。 推薦學習:《PHP影片教學》
以上是php中鍊錶和陣列的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!