测试工程师面试问题--------数组与链表的区别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

文章目录


一、数组

  • 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、随机访问率低

 


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值