数组
数据结构 / 维基百科,自由的 encyclopedia
在计算机科学中,阵列资料结构(英语:array data structure),简称数组(英语:Array),是由相同类型的元素(element)的集合所组成的资料结构,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素对应的储存地址。
此条目没有列出任何参考或来源。 (2018年10月17日) |
最简单的资料结构类型是一维阵列。例如,索引为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),专注于阵列的基本性质上。