数组和链表的增删改查速度比较

本文详细阐述了数组和链表这两种数据结构的特点,并对比了它们在查询、增删操作上的性能差异。数组适合快速查询,但增删操作较慢;链表则相反,增删操作快,查询慢。

数组查询快,增删慢

链表增删快,查询慢

首先我们要知道什么是数组什么是链表,数组和链表都有什么特点,那么这道题才好解答,数组是有序的元素序列,是多个相同类型数据的组合,而链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

数组和链表的特点是什么

数组的特点是

1.数组是相同数据类型的元素的集合。

2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

链表的特点是

线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为了表示每个数据元素 与其直接后继数据元素之间的逻辑关系,对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。由这两部分信息组成一个结点,表示线性表中一个数据元素

因为顺序存储符合连续的内存,在找到数组后,由于是顺序存储可以直接找数据,所以数组可以被缓存处理,而链接存储并不是连续的,分散在堆中,他需要每次都从头开始找,利用每一个结点去找下一个结点比较慢,所以只能内存去处理。
    所以数组查询比链表要快。
    但是数组的增删改慢,而数组大小固定,所以在插入和删除元素的时候,需要先找到数组中要插入的位置,然后需要将里面的元素移动,在插入进去,所以每次都需要移动元素,链表可以动态扩充,插入删除不需要移动元素,只需要找到我们要插入位置后,更改元素中的指针就可以了。所以链表的插入删除比数组效率高。

还要注意链表有单链表和双链表之分单链表只有一个指向下一结点的指针,也就是只能next
双链表除了有一个指向下一结点的指针外,还有一个指向前一结点的指针,可以通过prev()快速找到前一结点,顾名思义,单链表只能单向读取

Java中典型应用数组和链表的就是ArrayList底层是数组, LinkedList 底层是链表实现的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值