數組

在計算機科學中 ， 陣列資料結構 （ array data structure ） ， 簡稱數組 （ Array ） ， 是由相同類型的元素 （ element ） 的集合所組成的資料結構 ， 分配一塊連續的內存來存儲 。 利用元素的索引 （ index ） 可以計算出該元素對應的儲存地址 。 最簡單的資料結構類型是一維陣列 。 例如 ， 索引爲0到9的32位元整數陣列 ， 可作爲在記憶體位址2000 ， 2004 ， 2008 ， ... 2036中 ， 儲存10個變量 ， 因此索引爲i的元素即在記憶體中的2000 +4 × i位址 。 陣列第一個元素的記憶體位址稱爲第一位址或基礎位址 。 二維數組 ， 對應於數學上的矩陣概念 ， 可表示爲二維矩形格 。 例如 ： 在C語言中表示爲int a [ 3 ] [ 3 ] =; 。 在某些情況下 ， “ 向量 ” 一詞也可能代表二維陣列 ， 雖然在數學意義上更確切地稱呼爲元組 （ tuple ） ， 而不是向量 。 但需要注意的是 ： 計算機科學的某些領域 ， 如Matlab ， 元組是指類似C語言struct類型 ， 具有固定的往往是不同類型的數據成員的數據結構 。 陣列通常用於實作資料庫的表格 ， 特別是查詢表 ； 表格有時也被當作是陣列的同義詞 。 陣列是最早期和最重要的資料結構之一 ， 很多程式都會用到陣列 。 它們也用於實作許多其他資料結構 ， 譬如列表 （ list ） 和字串 （ string ） 。 它們有成效地開展了計算機的定址邏輯 。 在大多數現代計算機和許多外部儲存設備中 ， 記憶體如同一維陣列 ， 索引就是其位址 。 編譯器 、 處理單元 （ 特別是向量處理器 ） ， 經常會針對陣列操作進行優化 。 因爲在程式運行時可以計算元素的索引 ， 陣列是很有用的 。 此外 ， 也能以單一迭代語句就處理陣列的許多元素 。 爲此 ， 陣列資料結構的元素必須具有相同的大小 ， 而且應該使用相同的資料型別表示 。 陣列一詞通常用於表示陣列資料類型 ， 一種大多數高階編程語言都會內建的資料型別 。 陣列型別通常由陣列結構來實作 ； 然而在某些語言中 ， 它們可以由雜湊表 、 連結串列 、 搜索樹或其它資料結構來實現 。 在演算法的描述中 ， 陣列一詞特別著重意義爲關聯陣列或 “ 抽象的陣列 ” ， 一種理論上的計算機科學模型 （ 抽象數據類型或 ADT ） ， 專注於陣列的基本性質上 。