演算法 陣列和鍊錶

2021-09-12 17:28:15 字數 697 閱讀 6870

注:本文僅為筆記。

原文 一維陣列記憶體定址公式:

對於二維陣列 a[n]

a[i]_addr = base_addr + i * type_size

二維陣列記憶體定址公式:

對於二維陣列 a[m][n]

a[i][j]_addr = base_addr + (i * n + j) * type_size

三維陣列記憶體定址公式:

對於三維陣列 a[m][n][p]

a[i][j][k]_addr = base_addr + (i * n * p + j * p + k) * type_size

關於多維陣列在記憶體中的布局參考這篇文章:memory layout of multi-dimensional arrays

型別:維護乙個有序單鏈表,越靠近鍊錶尾部的結點是越早之前訪問的。當有乙個新的資料被訪問時,我們從煉表頭開始順序遍歷鍊錶。

如果此資料之前已經被快取在鍊錶中了,我們遍歷得到這個資料對應的結點,並將其從原來的位置刪除,然後再插入到鍊錶的頭部。

如果此資料沒有在快取鍊錶中,又可以分為兩種情況:

演算法 陣列和鍊錶

注 本文僅為筆記。原文 一維陣列記憶體定址公式 對於二維陣列 a n a i addr base addr i type size 二維陣列記憶體定址公式 對於二維陣列 a m n a i j addr base addr i n j type size 三維陣列記憶體定址公式 對於三維陣列 a m...

python演算法 陣列和鍊錶

資料是怎樣儲存在計算機中的?舉個例子 假如你帶了3樣物品,你需要將他們放進儲物櫃裡,這時你需要3個儲物櫃把物品放進去。計算機大致就是這樣儲存資料的。計算機儲存資料的基本方式有兩種 陣列和鍊錶。陣列就是將所有的元素放在一起。假如有1,2,3,4四個數字你要將它們寫在紙上 1 2 3 4 這就是陣列。當...

演算法 資料結構篇 陣列和鍊錶

演算法和資料結構都是非常基礎的內容,經常使用,但是又很容易被忽視,而被重視的時候往往是面試官提問的時候。之前很不理解為什麼面試官總喜歡問演算法和資料結構,日常價值不大的東西。後來隨著工作的深入,越發的理解 演算法 資料結構 程式 之所以後來理解了這個公式,系統學過演算法和資料結構的知識,清楚的知道它...