close

在電腦科學中,陣列資料結構英語: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),專注於陣列的基本性質上。

arrow
arrow
    全站熱搜

    歐巴珊手繪設計 發表在 痞客邦 留言(0) 人氣()