日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构考研:随机存取、顺序存取、随机存储和顺序存储的区别/详细解释(计算机/软件工程/王道论坛)

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构考研:随机存取、顺序存取、随机存储和顺序存储的区别/详细解释(计算机/软件工程/王道论坛) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、問題背景

最近在看王道論壇的數據結構書籍,開頭部分提到了隨機存取、順序存取、隨機存儲和順序存儲的區別。
于是博主在網上查詢了相關資料對隨機存取、順序存取、隨機存儲和順序存儲的區別進行詳細解釋。

二、詳細解釋

1.存取結構:隨機存取和順序存取

1.1隨機存取

隨機存取(直接存取,Random Access)指的是當存儲器中的數據被讀取或寫入時,所需要的時間與該數據所在的物理地址無關。

隨機存取的微觀現實例子就是編程語言中的數組。
隨機存取的宏觀現實例子就是我們的隨機存取存儲器(RAM:Random Access Memory),通俗的說也就是我們電腦的內存條。因為RAM利用電容存儲電荷的原理保存信息,所以RAM可以高速存取,且與物理地址無關。

1.2順序存取

順序存取(Sequential Access)是一種按記錄的邏輯順序進行讀、寫操作的存取方法,所需要的時間與該數據所在的物理地址有關。順序存取表現為:在存取第N個數據時,必須先訪問前(N-1)個數據。
順序存取的微觀現實例子就是數據結構中的鏈表。
順序存取的現實例子就是我們的錄音磁帶、光盤、機械硬盤里面的磁盤。磁帶、光盤、磁盤上的數據分別存儲在不同扇區、不同磁道上,磁盤的讀寫磁頭通過切換不同扇區和磁道來讀取物理地址不連續的數據時,該過程中要經過不同扇區和不同磁道上的無關數據,磁盤的讀寫磁頭在切換不同扇區和磁道所需時間也不同,故為順序存取。

2.存儲結構:順序存儲、隨機存儲

存儲結構是數據元素三大組成要素之一,下圖是博主對數據元素三要素所畫的思維導圖。

2.1順序存儲

順序存儲是把邏輯上相鄰的數據元素存儲在物理位置上相鄰的存儲單元中,數據元素之間的邏輯關系由存儲單元的鄰接關系來體現。

順序存儲的主要優點:

  • 節省存儲空間。因為分配給數據的存儲單元全用存放數據元素(不考慮c/c++語言中數組需指定大小的情況),數據元素之間的邏輯關系沒有占用額外的存儲空間。
  • 可實現對數據元素的隨機存取(直接存取)。即每一個數據元素對應一個元素下標,由該元素下標可以直接計算出來數據元素的物理存儲地址。
  • 順序存儲的主要缺點:

  • 不便于數據修改。對數據元素的插入、刪除運算時,可能要移動一系列的數據元素。
  • 產生磁盤碎片。因為順序存儲只能使用相鄰的一整塊存儲單元,因此會產生較多的磁盤碎片。
  • 順序存儲的典型實例就是編程語言中的數組。例如,使用順序表存儲集合 {1,2,3,4,5},數據最終的存儲狀態如下圖所示:

    數組中的所有元素存儲在一個連續性的內存塊中,并通過數組的首地址和元素下標來訪問。因此一個數組就是由1個數組首地址和N個數組元素構成,數組不需要像鏈表一樣,鏈表的每個節點必須存儲下一個結點的物理地址,在存儲同樣多的數據下,數組比鏈表節省空間。

    數組可通過數組的首地址和元素下標來直接存取數組中的沒每一個元素,而不需要像鏈表一樣,在存取第N個鏈表結點的數據時,必須先訪問前(N-1)個鏈表結點。

    但對數組的數據元素的插入、刪除運算時,可能要移動一系列的數據元素,特別的麻煩,因此順序存儲結構的數組不便于修改。

    2.2隨機存儲

    在計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的)。它不要求邏輯上相鄰的元素在物理位置上也相鄰,而是借助指示元素存儲地址的指針來表示元素之間的邏輯關系。

    順序存儲的主要優點:

  • 不會產生磁盤碎片。因為隨機存儲不要求邏輯上相鄰的元素在物理位置上也相鄰,而是借助指示元素存儲地址的指針來表示元素之間的邏輯關系,因此不會產生磁盤碎片。
  • 數據修改方便。對數據元素的插入、刪除運算時,隨機存儲不必移動結點,只要改變結點中的指針。
  • 順序存儲的主要缺點:
    3. 占用空間大。隨機存儲的每個結點都由數據域和指針域組成,所以相同空間內假設全存滿,順序存儲比隨機存儲可存更多數據。
    4. 查找結點時鏈式存儲要比順序存儲慢,且只能實現順序存取

    2.2.1 隨機存儲——鏈式存儲

    鏈式存儲是隨機存儲最典型的代表,因此鏈式存儲的定義、優點和缺點就是2.2隨機存儲中的定義、優點和缺點。

    2.2.2 隨機存儲——索引存儲

    除建立存儲結點信息外,還建立附加的索引表來標識結點的地址,索引表由若干索引項組成,索引項的一般形式是(關鍵字,地址)。

    索引存儲的主要優點:檢索速度快。
    索引存儲的主要缺點:增加了附加的索引表,會占用較多的存儲空間。

    2.2.3 隨機存儲——散列存儲

    散列存儲,又稱Hash存儲,是一種將數據元素的存儲位置與關鍵碼之間建立確定對應關系的查找技術,即根據元素的關鍵字直接計算出該元素的存儲地址。

    散列存儲的主要優點:檢索、增加和刪除節點的操作更快。
    散列存儲的主要缺點:若散列函數不好,則可能出現元素存儲單元的沖突。

    本文參考來源:
    [1]隨機存取、順序存取、隨機存儲和順序存儲
    [2]隨機存取-百度百科
    [3]順序表(順序存儲結構)及初始化詳解
    [4]磁盤系統基本概念以及磁盤的順序讀寫與隨機讀寫
    [5]順序存儲結構-百度百科
    [6]四種數據存儲結構—順序存儲 鏈接存儲 索引存儲 散列存儲

    總結

    以上是生活随笔為你收集整理的数据结构考研:随机存取、顺序存取、随机存储和顺序存储的区别/详细解释(计算机/软件工程/王道论坛)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。