通过查看标题,您可能会猜出我的意思。我正在查看一些对聚合数据类型(如数组)进行运算的算法。我可以很自信地说我知道什么是数组以及为什么要使用它们。但是我不知道它们在内部如何工作。例如,当我这样做时会发生什么:
anArray [10];
幕后发生了什么?我的计算机是直接到达第10个索引(似乎效率很高),还是从0开始到索引10,然后逐步前进直到找到[10]。如果直接执行,那么关联数组呢?关联数组中的键可以是字符串,对吗?计算机是尝试从左到右匹配键还是直接到达我们放在方括号中的索引/键。
在一个普通的普通数组(FORTRAN,C,Java数组)中,您可以直接访问索引位置,而无需在其他元素上进行任何迭代。对于一维数组,将数组索引乘以数组成员大小,从而获得直接的内存偏移量(从数组开始算起)。FORTRAN的equivalence
操作员将1D数组放置在2D数组(相同的内存位置)上,因此很明显如何放置它们。C还允许通过指针访问数组,很显然,内存偏移量只是将索引乘以元素的大小。
某些语言确实引入了“数组”,它们与其他数据结构(地图)非常相似。它们通常是通过哈希表实现的,并且具有恒定的访问时间-比直接访问要慢,但是对数组中元素数量的依赖性不大。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句