回覆列表
  • 1 # 大巖不燦

    連結串列的:

    缺點:浪費空間需要額外空間儲存前後節點的指標,根據下標獲取元素慢。

    陣列:

    優點:根據下標查詢快,佔用記憶體緊湊

  • 2 # 居家程式設計師

    說到這兩者,想起久遠的資料結構課上聽講過,查詢陣列快,插入連結串列快。

    先來說一下陣列這位老朋友:

    1、陣列在記憶體中是一塊連續的區域,意味著陣列在建立的時候就需要指定空間大小,提前預留空間,這裡會表現出陣列的一個缺點,那就是由於我們需要在使用前就提取申請記憶體空間,如果在不知道需要的空間大小時,這種預先申請會導致浪費記憶體空間,即陣列空間利用率低。

    2、提取申請的記憶體空間不足時,需要進行擴容,該操作將需要把舊陣列中的所有元素向新陣列中移動。

    3、陣列在插入資料時,待插入位置的的元素和它後面的所有元素都需要向後移動;而在

    4、由於陣列一開始就申請了記憶體空間,陣列的記憶體是連續的,也就是說想要訪問哪一個元素,直接從陣列的首地址處向後查詢就可以訪問到了,也就是常說的隨機訪問效率很高(有學問的感覺的說法就是:時間複雜度可以達到O(1))。

    隨後來說一下另一位老朋友,連結串列:

    1、連結串列同樣處在記憶體中,不過它各個元素的空間可以分散在任意地方,不需要連續。

    3、連結串列中的元素除了元素的內容外,還存在一個特殊屬性:指標,用於標記下一個元素的地址,也就是說每個元素都會透過指標來儲存下一個資料的記憶體的地址,在查詢的時候可以透過此地址可以找到下一個資料。

    4、由於記憶體空間分散不連續,所以訪問的時候不具有隨機訪問性,當我們需要訪問某個位置的資料,就需要從第一個資料開始,逐個查詢下一個資料,直到找到待查詢的位置,也就是說查詢資料時效率低(有學問的感覺的說法就是:時間複雜度為O(N))。

    根據兩者的介紹,綜合來說:

  • 中秋節和大豐收的關聯?
  • java程式如何呼叫python?具體過程是怎麼樣的?