簡體   English   中英

搜索鏈接列表和數組時有什么區別?

[英]what is the difference between linked list and array when search through them?

我了解可以通過數組的位置直接訪問數組的值,並且鏈接列表必須一一遍歷它們,但是不知道如何在搜索發生時解釋它們在開銷和存儲方面的區別。

(我認為更多的是前一個節點是否需要在某個地方臨時存儲,同時嘗試訪問下一個節點時系統部分在系統部分上的任何其他存儲或開銷?在搜索數組時也是如此)

誰能給我詳細介紹在每個結構中進行搜索時會發生什么? 或只是指向正確的方向

數組是固定大小的矢量變量。

鏈接列表沒有指定的大小:列表的每個元素都包含指向下一個元素的指針。 這就是為什么您需要按順序遍歷它的原因。 這樣做的好處是,該結構不會在內存的連續塊中分配,並且如果在其中添加更多元素,則無需調整大小。

同樣在數組中,如果刪除元素,則需要移動所有先前的元素。 如果在數組中間插入一個元素,則需要移動元素以為新元素騰出空間。 在列表中,您只需更新指針:

在此處輸入圖片說明

另一方面,數組可以隨機訪問,不需要順序訪問:因此它們可以更快地搜索對象,進行排序等。

擁有對列表元素的隨機訪問權限,可以實現二進制搜索之類的搜索算法,而使用鏈接列表則不可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM