数组一个简单的数据结构
阵列数据结构用于在连续的内存块中存储类似的对象(或数据值)。数组数据结构具有固定大小,它确定可以存储在其中的数据值的数量。
数组:C++方式
在 C++编程语言中,我们可以声明一个静态数组如下
int arrayName[100];
这里我们声明了一个名为 arrayName
的数组,它可以存储多达 100 个值,所有这些值都是相同的类型,即整数。
现在,我们将讨论此数据结构的一些优点和缺点
- 我们可以在 Constant Time 中访问存储在 Array 中的 Data Values,即时间复杂度为
O(1)
。因此,如果我们想要访问存储在第 i 个位置的数据值,我们不需要从起始位置开始并向上移动到第 i 个位置,但是我们可以直接跳到第 i 个位置,从而节省计算时间。 - 在数组中间插入元素不是一项有效的任务。假设我们想在第 i 个位置的数组中添加一个新元素,那么我们需要先在第(i-th)和第(i + 1)个位置移动所有元素,以便为新元素创建空间。示例:
1 4 2 0
是一个包含 4 个元素的数组,现在我们要在第 2 个位置插入 3,然后我们需要进一步移动 4,2 和 0 一个位置以创建 3 的空间。
1 3 4 2 0
- 与插入元素类似,从数组中第 i 个位置删除元素也是无效的,因为我们需要将删除元素前面的所有元素移动 1 个块以填充由删除的空闲空间元件。
这些是数组的 3 个简单特征,在这里你可能认为数组不是一种有效的数据结构,但在实践中,数组的优势可能会超出它的优势。这在很大程度上取决于你想要服务的目的,你可能不希望像访问它们那样经常插入或删除元素,在这种情况下,数组是绝对完美的数据结构。
引入此数据结构的唯一目的是确保你不会根据优势和劣势的数量选择数据结构,但你应该始终尝试通过考虑你的问题来分析数据结构的重要性,例如,如果与插入或删除数据值相比,你将花费大量时间访问数据值,那么在这种情况下,我们需要更多地利用优势而不是劣势。