【算法面试通关40讲】05 - 理论讲解:数组&链表

数组

数组一般是内存里连续的一段存储区域,数组的结构大概如下图所示,左边存储的是索引,对应的8位数字是内存地址。
右边的memory controler也就是内存管理器可以随意的访问任何一个内存地址,也就是时间复杂度是O(1)

数组的删除和插入操作如下图所示:

所以数组的查找,插入,删除的时间复杂度分别是O(1),O(N),O(N)

链表

链表常用在减少插入和删除时间,或者不知道后面会有多少元素添加进来的时候
链表的结构就是,一个value+一个指针,如下图所示:

链表的插入操作:


链表的删除操作:

链表的查找还是需要从头指针不断的next来进行,所以链表的查找、插入、删除的时间复杂度分别是O(N),O(1),O(1)

双链表

结构与单链表十分的类似,但是多了一个向前的指针

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务