二、試比較陣列(Array)與鏈結串列(Linked List)之差異?(25 分)

詳解 (共 7 筆)

Wa
Wa
詳解 #3428549
2019/06/21
經詢問由於公職王網站所提供的各科歷屆試題...
(共 142 字,隱藏中)
前往觀看
劉竑礽
劉竑礽
詳解 #3393164
2019/06/03
陣列需要事先宣告,並占用連續且大小相同的...
(共 177 字,隱藏中)
前往觀看
盧健瑋
盧健瑋
詳解 #3311606
2019/04/26
Array:在插入刪除的複雜度為O(N)...
(共 89 字,隱藏中)
前往觀看
lionlin00
lionlin00
詳解 #3086460
2018/11/25
如果有需要大量的插入和刪除就用 Linked List , 否則使用 Array
劉竑礽
劉竑礽
詳解 #3330205
2019/05/06
陣列為一連串資料大小都固定的串聯,其不能...
(共 77 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6105139
2024/05/22

 

陣列(Array)

  1. 存儲方式

    • 陣列是一組連續的存儲單元,每個元素都緊鄰在一起,並且大小固定。
  2. 訪問速度

    • 快速隨機訪問:由於陣列中的元素是連續存儲的,可以通過索引直接訪問,訪問時間為O(1)。
  3. 插入和刪除操作

    • 插入和刪除較慢:在陣列中間插入或刪除元素時,需要移動大量元素,時間複雜度為O(n)。
  4. 內存利用

    • 內存效率高:由於是連續存儲,陣列的內存利用率較高。
  5. 大小固定

    • 在大多數編程語言中,陣列的大小在創建後是固定的,無法動態調整。

鏈結串列(Linked List)

  1. 存儲方式

    • 鏈結串列由一系列節點組成,每個節點包含數據和一個指向下一個節點的指標。節點在內存中不必是連續存儲的。
  2. 訪問速度

    • 線性訪問:由於每個節點都包含指向下一個節點的指標,要訪問某個元素必須從頭開始逐個遍歷,訪問時間為O(n)。
  3. 插入和刪除操作

    • 插入和刪除較快:在鏈結串列中插入或刪除元素只需要更改指標,時間複雜度為O(1),但需要先找到插入或刪除的位置,這個操作時間為O(n)。
  4. 內存利用

    • 內存效率較低:由於每個節點除了存儲數據外還需要存儲指標,會消耗額外的內存。
  5. 大小動態

    • 鏈結串列的大小可以動態調整,節點數量可以隨著元素的插入和刪除而變化,不需要事先確定大小。

 

  • 陣列:適合需要頻繁隨機訪問且插入和刪除操作較少的情況,具有高效的訪問速度和較高的內存利用率,但大小固定,插入和刪除操作效率較低。
  • 鏈結串列:適合需要頻繁插入和刪除操作的情況,大小可以動態調整,但訪問速度較慢,內存利用效率較低。

 

YABE
YABE
詳解 #4769770
2021/06/02
陣列:
必須按照順序讀取,因此較好搜尋資料,但若要在其中插入或刪除資料,必須在 欲更動的位置之後方全部的資料刪除
鏈結陣列:
一個資料空間包含一個資料和指標,指標會指向某一個資料,因此為不連續,若要更動資料只要改變指標方向就好,能夠從中直接改變但也因為連續,搜尋資料時較為費時。