数组 

在計算機科學中,陣列資料結構(英語:array data structure),簡稱数组(英語:Array),是由相同类型的元素(element)的集合所組成的資料結構,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素對應的儲存地址。

最簡單的資料結構類型是一維陣列。例如,索引為0到9的32位元整數陣列,可作為在記憶體位址2000,2004,2008,...2036中,儲存10個變量,因此索引為i的元素即在記憶體中的2000+4×i位址。陣列第一個元素的記憶體位址稱為第一位址或基礎位址。

二维数组,对应于數學上的矩陣概念,可表示為二維矩形格。例如:C语言中表示為int a[3][3] = {{3, 6, 2}, {0, 1, -4}, {2, -1, 0}};

在某些情況下,“向量”一詞也可能代表二维陣列,雖然在數學意義上更確切地稱呼為元组(tuple),而不是向量。但需要注意的是:计算机科学的某些领域,如Matlab,元组是指类似C语言struct类型,具有固定的往往是不同类型的数据成员的数据结构。

陣列通常用於實作資料庫的表格,特別是查詢表;表格有時也被當作是陣列的同義詞。

陣列是最早期和最重要的資料結構之一,很多程式都會用到陣列。它們也用於實作許多其他資料結構,譬如列表(list)和字串(string)。它們有成效地開展了計算機的定址邏輯。在大多數現代計算機和許多外部儲存設備中,記憶體如同一維陣列,索引就是其位址。编译器、處理單元(特別是向量處理器),經常會針對陣列操作進行優化。

因為在程式運行時可以計算元素的索引,陣列是很有用的。此外,也能以單一迭代語句就處理陣列的許多元素。為此,陣列資料結構的元素必須具有相同的大小,而且應該使用相同的資料型別表示。

陣列一詞通常用於表示陣列資料類型,一種大多數高階編程語言都會內建的資料型別。陣列型別通常由陣列結構來實作;然而在某些語言中,它們可以由雜湊表連結串列搜索樹或其它資料結構來實現。

在演算法的描述中,陣列一詞特別著重意義為關聯陣列或“抽象的陣列”,一種理論上的計算機科學模型(抽象數據類型或 ADT),專注於陣列的基本性質上。




取材自維基百科 - 中文時事百科