数组里面有10万个数据,取第一个元素和第10万个元素的时间差异

存储模式:

Chrome 浏览器JS引擎 V8中,数组有两种存储模式,

一种是类似C语言中的线性结构存储(索引值连续,且都是正整数的情况下),

一种是采用Hash结构存储(索引值为负数,数组稀疏,间隔比较大)。

读取方式:

javaScript 没有真正意义上的数组,所有的数组其实是对象,其“索引”看起来是数字,其实会被转换成字符串,作为属性名(对象的 key)来使用。

所以无论是取第 1 个还是取第 10 万个元素,都是用 key 精确查找哈希表的过程,其消耗时间大致相同。

时间复杂度:

数组可以直接根据索引取的对应的元素,所以不管取哪个位置的元素的时间复杂度都是 O(1)

 

结论:消耗时间几乎一致,差异可以忽略不计

posted @ 2022-05-26 11:28  下一秒钟已经不同  阅读(185)  评论(0编辑  收藏  举报