> 软件应用
数组查询快的原因(数组查询)
导语:面试官:数组查询效率为什么高?我:因为有下标。 哈哈
估计很多程序员对于数组查询效率为什么这么高,回答都是因为有下标,通过下标直接定位到元素,然后就可以获取到元素里面的值[捂脸][捂脸]。这样的回答对于面试官来说,是不满意的工资直接降低一个等级,那么今天我们就来具体聊聊,数组为什么可以号称是java中查询效率最高的数据结构。
直接进入主题,数组效率高的原因:
1、数组的内存地址是连续的。
2、数组存储的元素类型是一致的,所以每个元素占用的内存大小是一样的。
3、数组的第一个元素内存地址作为整个数组的引用。
通过上面固定的三个条件,我们就可以根据传入的下标,通过一个数学公式,直接得到下标的内存地址,就可以获取里面的值了。
所以数组的时间复杂度是o(1)。不管你查询的下标是0还是10000,所需要的查询时间都是一样的,直接通过一个数学公式获取到下标的具体内存地址。
上面就是数据查询效率高的原因,但是凡事有利就有弊。应为数组的内存是连续的,所以对数组进行增删元素(不包含最后一个元素)都会对后面的元素进行位移操作,这就导致了性能问题,所以数组查询效率高,增删效率慢。
本文内容由快快网络小岑创作整理编辑!