浅谈数组与链表的区别
来源:互联网 发布:淘宝的护肤品可靠吗 编辑:程序博客网 时间:2024/05/18 03:54
先搬砖,后砌墙 转载自网络
浅谈数组与链表的区别
谈到链表与数组的区别,可以从几个不同的角度来谈,
首先从逻辑结构上说,两者都是数据结构的一种,但存在区别,
数组是申请的一块连续的内存空间,并且是在编译阶段就要确定空间大小的,同时在运行阶段是不允许改变的,所以它不能够随着需要的改变而增加或减少空间大小,所以当数据量大的时候,有可能超出了已申请好的数组上限,产生数据越界,或者是数据量很小,对于没有使用的数组空间,造成内存浪费。
链表则是动态申请的内存空间,并不像数组一样需要事先申请好大小,链表是现用现申请就OK,根据需求动态的申请或删除内存空间,对于的是增加或删除数据,所以比数组要灵活。
再从物理存储即内存分配上分析,
数组是连续的内存,对于访问数据,可以通过下标直接读取,时间复杂度为O(1),而添加删除数据就比较麻烦,需要移动操作数所在位置后的所有数据,时间复杂度为O(N)。
链表是物理上非连续的内存空间,对于访问数据,需要从头便利整个链表直到找到要访问的数据,没有数组有效,但是在添加和删除数据方面,只需要知道操作位置的指针,很方便可以实现增删,教数组比较灵活有效率。
所以综合以上,对于快速访问数据,不经常有添加删除操作的时候选择数组实现,而对于经常添加删除数据,对于访问没有很高要求的时候选择链表。
0 0
- 浅谈数组与链表的区别
- 浅谈数组与链表的区别
- 浅谈数组与指针的区别
- 浅谈数组与链表的相似性
- 浅谈数组与指针表示字符串的区别
- 链表与数组的区别
- 链表与数组的区别
- 数组与链表的区别
- 链表与数组的区别
- 数组与链表的区别
- 数组与链表的区别?
- 链表与数组的区别
- 链表与数组的区别
- 数组与链表的区别
- 数组与链表的区别【repost】
- 数组与链表的区别
- 数组与链表的区别
- 链表与数组的区别
- 62.A-B-C-D-E-H 原则
- UI day 11 模态
- 共用体及枚举
- Webservice学习
- UI day 12 UITabBarController 标签视图控制器 微信的界面 Block 传值
- 浅谈数组与链表的区别
- C#中使用SQL存储过程说明
- 算法导论-归并排序
- Java Day1
- C# 线程向UI通信 委托(delegate)
- C语言项目感想
- UI day 13 Xib可视化编程 storyboard可视化编程
- 1154 回文串划分
- VHDL实现上升沿敏感的带异步复位的十进制加1计数器