Java教程

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

本文主要是介绍【九月打卡】第七天 数组和链表学习总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第一模块:课程介绍

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

第二模块:课程内容

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

第三模块:课程收获

1. 用数组还是链表

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

数组

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

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

图片描述

链表

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

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

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

注意事项

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

常见操作的时间复杂度

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

总结

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

第四模块:课程记录

图片描述

这篇关于【九月打卡】第七天 数组和链表学习总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!