蓝盟IT外包,数组:非常基础和重要的数据结构

发布者:上海IT外包来源:http://www.lanmon.net点击数:977

蓝盟IT小贴士,来喽!
数据是什么
数组定义:数组(Array  )是线性表的数据结构。 使用一组连续的内存空间来存储同一类型的数据集。
的定义加上黑色的描述,可以看出数组的几个特征。 它们分别是线性表、连续的内存空间和相同类型的数据。
由于数组具有连续的内存空间,所以可以对数据进行非常高效的“随机访问”,但是由于要保留这个连续的内存空间,所以在删除和插入数组时效率非常低。 因为数组为了保持连续性,必然会涉及大量的数据移动,这非常耗费时间。
思考:这里可能有疑问。 什么是连续的内存空间?
首先,让我们来说明一下内存。 存储器由一个个连续的存储器单元构成,每个存储器单元都有自己的地址。 这些存储单元中,有被其他数据占有的,也有空的。
但是,由于数据中的各要素存储在小的存储单元中,且要素之间排列紧密,因此既不能打乱要素的存储顺序,也不能跳过某个存储单元进行存储。
对数组的随机访问
对数组的随机访问有寻址表达式。 在上面的问题中,数组说过要在一系列连续的存储器空间中存储数据元素,但是每个存储器单元都有自己的地址,在计算机中通过这个地址访问数据。 另外,各存储单元的大小也相同,所以可以简单地得到公式。
数组的基本操作
在开始之前创建数组类,以模拟数组操作时的相关操作。
1 .读取元素
我们知道数组是连续存储在内存中的,所以通过上面的寻址表达式,我们可以看到数组可以根据数组下标I快速放置到对应的元素上。
2 .更新要素
可以根据数组的后缀快速找到对应的元素。 同样,可以根据数组下标I快速更新元素。 这中间包括两个过程。 首先找到与数组下标I对应的数据要素a,将新的数据要素b分配给a后,更新完成。
3 .插入元素
与导入、更新操作相比,插入要素有点复杂,分为以下两种情况。
末尾插入:首先,让我们来看看末尾插入。 这很简单。 在数组的末尾添加新元素。 此时,对原始数组没有任何影响。 的复杂度为0(1)。
中间插入:在阵列的中间位置插入元素会影响当前插入元素的位置之后的元素。 也就是说,这些数据需要向后依次移动一个。
总结
数组使用连续的内存空间来存储同一类型的数据集。 最大的优点是数组支持随机访问。 时间复杂度为o(1),因为数组可以使用数组下标(寻址表达式)快速访问相应的元素。

文/上海蓝盟  IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部