美文网首页
算法和数据结构1.3数组

算法和数据结构1.3数组

作者: 数字d | 来源:发表于2019-07-25 20:55 被阅读0次

数组也是数据呈线性排列的一种数据结构。与链表不同的是,数组中访问数据十分简单,而添加和删除数据比较耗功夫。

a[0],a[1],a[2] 
//其中a是数组的名字,后面的“[]”中的数字表示该数据是数组中第几个数据(这个数字叫做数组下标),下标从0开始计数。

数据按照顺序存储在内存的连续空间内。

由于数据是存储在连续空间内的,所以每个数据的内存地址(在内存中的位置)都可以通过数组下标算出,我们也就可以借此直接访问目标数据(这叫做随机访问)。

数据的访问:

如果想要访问数组arr的第三个元素,直接操作

a[2]

即可。

数据的插入

对一拥有8个数据的数组,如果想要在第三个位置插入一条数据3,那么要操作如下步骤

a[8] = a[7];
a[7] = a[6];
a[6] = a[5];
...
a[3] = a[2]
a[2] = 3

这样为了给新数据腾位置,要把已有的数据一个个移开。

数据的删除

对于一个拥有8个数据的数组,如果要删掉第3个元素,那么就要进行如下操作:

a[2] = a[3];
a[3] = a[4];
a[4] = a[5];
...
a[6] = a[7]

最后再删除掉多余的a[7]的空间即可。

操作数组的时间

关于操作数组的时间计算:假设数组中有n个数据,由于访问数组时使用的是随机访问(通过下标可以计算出内存地址),所以需要的运行时间仅仅为恒定的O(1)。

但是另一方面:想要向数组中添加新的数据是偶,需要把目标位置后面的数据一个个移开。所以要在数组头部添加数据,就需要O(n)的数据。同样的道理,如果想要在数组头部删掉一条数据,那么就要O(n)的时间。

链表和数组对比:
链表访问数据慢 添加快 删除快
数组访问快,添加慢,删除慢

相关文章

  • JavaScript数据结构和算法简述——数组

    JavaScript数据结构和算法简述——数组

  • 算法和数据结构1.3数组

    数组也是数据呈线性排列的一种数据结构。与链表不同的是,数组中访问数据十分简单,而添加和删除数据比较耗功夫。 数据按...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 重温:数据结构与算法 - 03数组

    数据结构与算法之美 - 数组 数据结构与算法之美-学习大纲 什么数组? 数组是一种 线性表 数据结构。它用一组 连...

  • 第一章绪论

    1.1数据结构 1.2基本概念和术语 1.3抽象数据类型 1.4算法和算法分析 给出问题--->画出逻辑结构---...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构简要

    数据结构与算法 几种常见的数据结构 线性表(数组和链表)、栈、队列和树(二叉树) 一.线性表 1.数组 数组是...

  • 2019-07-19数据结构

    计算机本来没有算法先有编码,后有数据结构,然后有可算法 基础数据结构 数组 java 内置 顺序存储数组的缺点,...

  • JavaScript_数组

    一、 数据结构 数据结构分为: 逻辑结构、存储结构和算法。 (一)存储结构 a. 线性 栈 队列 堆 数组 …… ...

  • Swift 实现 7 种常见的排序算法

    排序算法可以说是数据结构与算法当中最为基础的部分,针对的是数组这一数据结构。将数组中的无序数据元素通过算法整理为有...

网友评论

      本文标题:算法和数据结构1.3数组

      本文链接:https://www.haomeiwen.com/subject/iomkrctx.html