大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
数据结构 – 链表和数组的区别
1、在内存上
数组是连续内存,因为是静态分配,所以不可扩容
链表是非连续内存,动态分配,也没有顺序,它通过链表中的 next 指针保存逻辑顺序
2、时间复杂度
查找时间复杂度
1、数组使用下标定位,1次就可以找到 ,O(1)
2、链表需要循环去找,最大需要N次,O(N)
插入删除时间复杂度
1、数组插入删除需要移动其它元素,复杂度 O(N)
2、链表插入删除不需要移动其它元素,复杂度 O(1)
3、链表的结构
常用的链表结构有两种
1、只带有 next 指针的单头链表
2、既带有 next 指针,又带有父指针的双头链表
4、各自的优缺点
数组优缺点
优点
1、查找速度快
缺点
1、数组插入删除效率低
2、内存连续,容易造成内存碎片
3、不能动态扩容
链表优缺点
优点
1、插入删除效率高
缺点
1、查找效率低
5、为什么使用较常用的是单头链表
为什么大多数情况下单头链表比双头链表用的更多,虽然双头链表更具有优势,因为双头链表需要比单头链表更大的内存空间
而一般情况下,我们会选择用时间换空间
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219101.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...