数组
数据结构 / 维基百科,自由的 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),专注于数组的基本性质上。