有限個相同型別變數的有序集合
使用一塊連續的記憶體區域,進行順序儲存
訪問時通過下標進行訪問
即:偏移量offset
如果陣列的首元素為a,a[0]即偏移量為0的位置。
下標為偏移量,所以如果從1開始第乙個元素的偏移量為0.依此類推每次都要進行一次-1的減法操作。從0開始減少一次減法操作,效能達到極致。
尾部新增,那麼只需要在最後一位新增上新的元素即可,所以時間複雜度為o(1)。
頭部新增或中間新增,則需要對新增位後面的所有元素進行移位操作。最壞的時間複雜度是o(n)即頭部新增全部需要移位。
同樣分尾部刪除位o(1)
頭部刪除或中間位刪除則需要進行移位,最壞時間複雜度o(n)
根據陣列操作的時間複雜度,所以陣列特別適合於隨機訪問、查詢類的操作。但由於增刪的時間複雜度是o(n),所以不適合隨機寫、刪除多的場景。遍歷時使用fori遍歷非常高效。但是根據陣列的定義,陣列是乙個有限集合,所以存在resize問題。這時候就要進行陣列拷貝。相對比較影響應能。
簡單手寫乙個arraylist,不具備使用價值,只是簡單體現一下實現複雜度和resize步驟。
public class wmarray
public void add(int element)
private void checkresize()
}private void resize()
public void add(int index, int element)
array[index] = element;
}public void remove(int index)
for (int i = index; i < size; i++)
array[size--] = 0;
}public void update(int index,int element)
public int get(int index)
@override
public string tostring() ';
}}
資料結構之陣列
陣列的考點 1.二維陣列元素位址計算 三維陣列中元素個數的計算 選擇題 2.廣義表的基本概念 會求表尾 表頭,填空題 3.矩陣的壓縮儲存 壓縮儲存的目的 對稱矩陣壓縮儲存後的大小,填空題 針對考點,一一擊破。哈哈哈。第一部分 首先,二維陣列元素位址計算。注 只要知道以下三要素便可隨時求出任一元素的位...
資料結構之 陣列
陣列是線性表,就是資料排成像一條直線一樣的結構,除了陣列,鍊錶,佇列,棧都是線性結構 而非線性表就是二叉樹,堆,圖等,資料之間不是簡單的先後關係。陣列有連續的記憶體空間和相同型別的資料。正式有了這兩個限制,才有了乙個堪稱殺手鐗的特性 隨機訪問 但是刪除,插入乙個資料,為了保證連續性,就需要做大量的資...
資料結構之 陣列
陣列是由相同型別的元素的集合所組成的資料結構並且是分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。一維陣列就是最簡單的陣列,就像 int data 二維陣列實質就是儲存的一維陣列,就像 int data 大於等於二維的陣列就叫多維陣列。需要初始化空間大小,並且...