順序表和煉表各自的優缺點

2021-10-11 20:26:19 字數 921 閱讀 2357

順序表是將資料元素放到一塊開闢的連續儲存空間,相鄰元素的邏輯位址也相鄰(邏輯與物理統一)

在上面的中可以看到順序表是在堆中是一塊連續的記憶體空間

優點:1.空間利用率高(連續存放,命中率高)

2.查詢可以通過索引直接查詢,非常便利(隨機訪問)

缺點:1.插入和刪除比較慢,每次插入都需要遍歷元素來找到適當的位置進行插入和刪除,

2.插入時需要判斷是否需要擴容,擴容時會有額外的空間需求

3.儲存的元素過多時要進行擴容,儲存的元素過少時會造成額外的空間浪費,例如你的array.length=100,但是實際有效元素size=5,只有5個,剩下的空間無法利用起來,會造成空間浪費

鍊錶是程式執行過程中動態的空間分配,只要儲存器記憶體夠用,就不會出現空間溢位的現象,相鄰資料元素可隨意存放

優點:1.插入和刪除元素比較快,只需要改變相應元素的next域的指向

2.沒有空間限制,存放元素比較自由,只要儲存器有空間,就不會出現溢位問題,不用考慮擴容問題

缺點:1.不能隨機訪問,查詢時需要從頭遍歷鍊錶查詢某個元素

2.需要占用額外的空間去儲存next域。

在使用時如何去選擇使用順序表還是鍊錶?

我們可以結合兩者各自的優缺點去選擇是使用鍊錶還是順序表

使用順序表的一般情況:

1.需要頻繁的去查詢訪問元素

2.事先知道順序表的長度,並且需要不斷的去查詢或者訪問元素,可以使用順序表

使用鍊錶的一般情況:

1.需要頻繁的去進行增加和刪除操作,對於鍊錶來說進行這樣的操作開銷很小,這個時候可以選擇鍊錶

2.當不知道儲存資料是多少時,為了防止不斷的擴容和空間浪費,此時也可以選擇鍊錶。

順序表和煉表的優缺點

一 順序表 優點 順序表的記憶體空間連續。尾插 尾刪效率較高,時間複雜度是o 1 支援隨機訪問,可以高效的按下標進行操作,時間複雜度是o 1 缺點 在順序表中間插入或刪除元素時都涉及到元素的移動,效率較低,時間複雜度為o n 順序表長度固定,有時需要擴容。二 鍊錶 優點鍊錶的記憶體空間不連續。如果知...

順序表和煉表的優缺點比較

優點 1 結構簡單,易於理解 2 儲存空間連續,方便隨機訪問表中的每個元素,時間複雜度為o 1 3 不需要再為表示節點間的邏輯關係而增加額外的儲存空間 4 尾插,尾刪效率高,時間複雜度為o 1 5 cpu快取利用率高 缺點 1 插入和刪除比較慢,時間複雜度為o n 2 長度固定,必須在分配記憶體之前...

陣列和鍊錶的優缺點

array與list,使指資料結構概念上的陣列與鍊錶的優缺點吧.如果指的是array類 或介面 與list介面的優缺點的話,就不好理解了.陣列,在記憶體上給出了連續的空間.鍊錶,記憶體位址上可以是不連續的,每個鍊錶的節點包括原?吹哪詿婧拖亂桓黿詰愕男畔?單向的乙個,雙向鍊錶的話,會有兩個 陣列優於鍊...