阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 普通考試_統計、資訊處理:資料處理概要#70516
科目:資料處理
年份:107年
排序:0

申論題內容

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

詳解 (共 3 筆)

詳解 提供者:lionlin00
如果有需要大量的插入和刪除就用 Linked List , 否則使用 Array
詳解 提供者:hchungw

 

陣列(Array)

  1. 存儲方式

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

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

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

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

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

鏈結串列(Linked List)

  1. 存儲方式

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

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

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

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

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

 

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

 

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