美文网首页
数组与链表

数组与链表

作者: 小杨不是小羊 | 来源:发表于2020-12-14 22:00 被阅读0次

数组Array 是一个线性表数据结构,它用一组连续的内存空间来存储相同类型的元素。
上述就是数组最重要的定义,理解这句话基本就理解了数组。
下面详述其特点

线性表

线性表中的数据最多有两个方向 前和后。
常见的线性表有 数组 链表 队列 栈等等

非线性表

树 图 这种并非只有简单的前后关系

连续的内存空间存储相同的数据

这个一特点实现了数组的下标访问

int a[10]
数组内存地址.jpg

寻址公式为 a[i] = 初始地址 + i * 数据类型大小
a[6] = 1000 + 6 * 4
a[6] = 1024

数组的相关操作

插入

k:插入的位置
有序 :如果k位置有元素 则要将包括k位置元素后的所有元素依次搬移一个位置 时间复杂度为O(n)
无序:将k位置元素放到数组元素的最后 将k位置元素赋值为插入元素 时间复杂度为O(1)

删除

k:删除的位置
有序:与插入相同,如果k位置元素被删除k之后的所有数据都需要搬移 时间复杂度为O(n)
在删除时可以对删除元素标记为已删除,当已删除元素达到阈值统一删除,可避免频繁的搬移元素
无序:删除k元素后将数组中最后的元素填充到k位置 时间复杂度O(n)

查找

有序:使用二分查找 O(logn)
无序:顺序遍历O(n)

相关文章

  • 数据结构-链表

    章节 动态数组 & 栈 & 队列 与 链表的不同 链表特性 & 图示 链表实现 & 各操作时间复杂度分析 动态数组...

  • python笔试面试项目实战2020百练2选择排序冒泡排序

    链表与数组 链表的优势在插入元素方面,需要随机地读取元素时,数组的效率很高,因为可迅速找到数组的任何元素。在链表中...

  • 数据结构和算法

    1、数组和链表区别(1)物理存储结构不同。链表与数组在计算中存储元素采用不同的存储结构,数组是顺序存储结构,链表是...

  • 数据结构与算法之美 —— 如何实现LRU缓存淘汰算法?(总结)

    链表与数组 链表定义: 百度百科 数组定义:百度百科 总结:链表和数组最大差别是在内存空间结构上,连续(数组)和...

  • 链表

    链表 缺点:查找复杂有点:定点删除/插入元素 单链表 双向链表 循环链表 双向循环链表 数组与链表的区别 数据存储...

  • 算法与数据结构(四)栈与队列

    上次聊到数组与链表,它们都是线性表,数组与链表的本质区别是内存是否连续,进而得出结论:数组可以在 O(1) 时间复...

  • 大数据(架构师)面试系列(5)

    1.数组与链表的区别是什么? 线性表--数组和链表的区别链表和数组的区别在哪里? 2.Scala函数式编程的特点?...

  • Java集合源码分析之Map(一):超级接口Map

    数组与链表在处理数据时各有优缺点,数组查询速度很快而插入很慢,链表在插入时表现优秀但查询无力。哈希表则整合了数组与...

  • 三、数据结构与算法 — 链表

    链表与数组的区别 链表不是连续的 单链表与循环链表 注意链表中的头结点和尾结点。 循环链表从尾可以方便的到头,适合...

  • 静态链表及C#实现

    静态链表 静态链表是用数组模拟动态链表。 静态链表结构描述 首先,静态链表使用数组来模拟动态链表。数组存放一个节点...

网友评论

      本文标题:数组与链表

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