数据之美——数组

数组特点:数组是线性表的数据结构的一种,它是由连续的一片内存空间组成,存储同一种数据结构
具有查询快,删减慢的特点。
它随机访问一个地址的时间复杂度是O(1),删减的时间复杂度是O(n)
寻址公式
a[i]_address = base_address + i * data_type_size

C语言编程必须警惕数组的访问越界问题

ArrayList(容器类相对于数组的优势) --支持动态扩容
ArrayList 已经帮我们实现好了。每次存储空间不够的时候,它都会将空间自动扩容为 1.5 倍大小
使用数组好于ArrayList的3种情况:
1,当数据类型为int或者long时,ArrayList需要把int和long 封装成integer和Long,这样比较消耗资源
2,当数据大小已知,并且操作简单的时候,不需要用到ArrayList的大部分方法,可以使用数组
3,双重数组时 array[][]比arraylist直观

为什么数组角标是从0开始,不是从1开始
因为根据寻址公式,从0开始a[i]_address = base_address + i * data_type_size
如果从1开始则变为a[i]_address = base_address + (i -1)* data_type_size
这样CPU就需要多做一次减法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值