数据结构与算法(二.数组)
概念
内存空间连续的,存储相同类型的数据的线性结构。
时间复杂度
查找
根据下标随机访问时间复杂度:O(1)
有序数组查找时间复杂度根据查找算法而定:
遍历查找:O(n)
二分法查找:O(logn)
插入
不考虑顺序,插入尾部时间复杂度(插入中间k,k下标数据替换目标数据后,k插入尾部):O(1)
有序数组插入:最好O(1),最坏O(n),平均O(n)
扩展
ArrayLIst:
java的ArrayList列表,基于数组实现,自带一些便于数组操作的方法。
ArrayList优点:自带封装好的操作数据list的方法,可以自动扩容,扩容当前长度的1.5倍。
ArrayList缺点:相比基本数组,相同元素需要更多的存储空间。扩容时需要数组复制操作、以及申请内存空间操作,比较消耗系统性能。
针对自己的业务场景,选择最合适的处理方式。当然,再不确定需要数组长度时,ArrayList是最好的选择。