提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、数组
-
1.定义
相同数据类型的元素按照一定的顺序排列的一个集合
-
2.存储方式
数据的存储区间是连续的,即在内存中,数据的存储空间是连续的
-
3.特点
1、数组要预留空间
2、内存中数组是一块连续的区域
3、在起始位置插入和删除数据效率低:插入时带插入和后面的元素都要往后移动,删除时则都要往前移动
4、由于数组的存储是连续的一组空间,因此随机访问的效率很高
5、数据的空间是从栈分配的
-
4.优缺点
优点:
随机访问方便,查找速度快,时间复杂度是O(1)
缺点
1、从头部插入和删除的效率低
2、由于需要提前预留空间,因此空间利用率不高
3、因为数组的存储是一组连续的空间,因此对于内存的空间要求很高,要有足够的连续的内存
4、数组的内存空间是确定的,不能进行动态扩展
二、数组
-
1.定义
链表是物理存储上非连续的线性表
-
2.存储方式
数据的存储区间是可连续可不连续的,即在内存中,数据的存储空间是任意的,通过指针
-
3.特点
1、在内存中,元素的空间可以在任意地方,空间是分散的,不需要连续。
2、链表中的元素有两个属性,一个是元素的值,另一个是指针(用来标记下一个元素的地址)
3、链表的空间是分散的,所以不具有随机访问性
4、空间不需要预留,可动态申请,空间利用率较高
5、数据的空间是从堆(先进先出,后进后出)分配的
6、任意位置插入元素和删除元素时间效率较高
-
4.优缺点
优点:
1、任意位置插入元素和删除元素的速度快
2、动态分配内存,利用率高
3、空间不固定,可动态扩展
缺点
1、随机访问率低