美文网首页
数组和链表的比较

数组和链表的比较

作者: 深度码农患者 | 来源:发表于2020-06-02 22:15 被阅读0次

数组

  • 概念
    数组就是相同数据类型的元素按照一定顺序排列的集合
  • 特点
  1. 查询简单,插入和删除比较复杂。
  2. 需要占用一块连续的内存空间。
  • 优点
    随机访问性强,查找速度快,时间复杂度是O(1)。因为数组的内存空间是连续的,想访问哪个元素,直接从数组的首地址向后偏移index个元素长度就可以得到。
  • 缺点
  1. 从头部删除/插入的效率低,时间复杂度是O(n),因为需要把对应的元素向前/向后搬移
  2. 空间利用率低,必须要有连续的内存空间。
  3. 扩容复杂。当数组的长度达到设置的阈值后,要想插入新的元素,必须进行扩容,即将旧数组中的所有元素向新数组中拷贝。

链表

  • 概念
    链表是一种物理存储单元上非连续、非顺序的数据结构。数据元素的逻辑顺序是通过链表中的指针连接次序实现的。链表由一系列结点构成,结点可以在运行时动态生成,每个结点包括两部分,一部分是存储数据元素的数据域,一部分是存储下一个结点地址的指针域。
  • 特点
    链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大。
  • 优点
  1. 任意位置插入元素和删除元素的速度快,时间复杂度为O(1)
  2. 内存利用率高,不会浪费内存。
  3. 链表的空间大小不固定,可以动态扩展。
  • 缺点
    随机访问效率低,时间复杂度为O(1)

总结

  1. 想要快速访问数据,不经常插入和删除元素的时候,选择数组
  2. 对于需要经常插入和删除元素,而对访问元素时的效率没有很高要求的话,选择链表。

扩展

数组的底层是ArrayList,链表的底层是HashMap

相关文章

  • 数据结构——链表

    目录 1、属性 2、链表和数组的区别 2.1、数组概述 2.2、数组和链表优缺点 2.3、链表和数组的比较 3、单...

  • 数组和链表的比较

    数组 概念数组就是相同数据类型的元素按照一定顺序排列的集合 特点 查询简单,插入和删除比较复杂。 需要占用一块连续...

  • 数据结构与算法 链表

    链表:零散的内存空间数组:连续的内存空间链表类型:单链表、双向链表、循环链表 链表和数组的比较: 数组:查询:按索...

  • 链表 Linked List

    链表和动态数组的比较 动态数组回造成内存空间的大量浪费 链表可以做到用多少内存就申请多少内存 链表 是一种链式存储...

  • Java 二叉树、红黑树、B+树

    数组和链表是常用的数据结构,数组虽然查找快(有序数组可以通过二分法查找),但是插入和删除是比较慢的;而链表,插入和...

  • 数据结构与算法第三讲 - 链表

    本讲内容 链表定义和分类链表和数组比较链表操作写链表代码的技巧简单算法题 链表定义和分类 定义:通过指针把零散的内...

  • 数组和链表的优缺点比较

    1)数组在内存中是逐个存放的,也就是说倘若数组的第一个元素在地址A,则数组第二个元素就在地址A+1。而链表则不是,...

  • iOS知识复习笔记(19)---数据结构和算法1

    数组和链表的区别 数组静态分配内存,链表动态分配内存 数组内存中连续,链表不连续 数组元素在栈区,链表在堆区 数组...

  • Redis-第十章节-链表

    目录 数组和链表 链表 对比 总结 1、数组和链表 数组: 数组会在内存中开辟一块连续的空间存储数据,这种存储...

  • 「数据结构与算法」笔记

    一 数组和链表的区别 数据结构在通过索引进行查询时效率比较高 ,而对于数组插入和删除操作,则效率会比较低。 数组优...

网友评论

      本文标题:数组和链表的比较

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