为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第七天 数组和链表学习总结

标签:
算法

第一模块:课程介绍

课程名称:JavaScript版数据结构与算法 轻松解决前端算法面试
课程章节:5-1 链表简介
主讲老师:lewis

第二模块:课程内容

熟悉链表和数组之间的区别

第三模块:课程收获

1. 用数组还是链表

举简单的两个生活中的例子。

数组

简单一个例子就是生活中的麻将

在开始摸牌的时候,我们每个人手里的牌数是固定的,相当于在内存中,我们已经申请好了内存地址。我们每抓一张牌相当于就是在数组里面插入一个数据,在每次插入的时候,都需要把插入位置后的牌都往后移动。如果桌面上没有足够的空间,还需要把整个牌挪到另一个地方去。

图片描述

链表

比起数组的有序排列,我们每次使用的时候,都会占用内存连续的一段内存空间,而链表不需要。链表中的元素可以存储在内存的任何地方

链表中的每一个元素都存储了下一个元素的地址,通过这个下标将这些分散在各个内存中的数据都关联起来。

就像是解密的游戏,你只有在完成了第一个任务后,才会告诉你第二个任务的任务地点,然后去做了任务二,就又得到了任务三的地点。以此类推。

注意事项

数组的元素都有下标(索引),下标是从0开始而不是从1开始。

常见操作的时间复杂度

操作 数组 链表
读取 O(1) O(n)
插入 O(n) O(1)
删除 O(n) O(1)

总结

我觉得数组比起链表来说,使用的更多一些,因为数组支持随机访问。数据的访问方式有两种:顺序访问和随机访问。顺序访问就是从第一个元素开始,一个一个往下数。链表只能支持顺序访问。要读取链表的第n个元素,就要数n-1下。而数组就不要,直接通过索引就好了。

第四模块:课程记录

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消