请你说说数组为什么查询快而链表查询慢

首页

题库

面试

求职

学习

竞赛

搜索面经/职位/试题/公司

搜索

我要招人

去企业版

登录 / 注册

首页

>

试题广场

>

请你说说数组为什么查询快而链表查询慢

[问答题]

请你说说数组为什么查询快而链表查询慢

添加笔记

求解答(0)

邀请回答

收藏(0)

分享

纠错

2个回答

添加回答

0

一只弱小的Kid

数组在内存中是一段连续的空间,可以根据数组名得到首地址,然后在根据索引计算出偏移,最后得到要获取的对应的索引的值。O(1) 链表在内存中则是一段不连续的空间,无法根据计算得到内存地址,只能通过Next来一个一个查找。O(n)

发表于 2021-03-22 18:45:15

回复(0)

0

真的没名字

cpu缓存会把一片连续的内存空间读入,而数组结构是连续的内存地址,所以数组全部或者部分元素可以被缓存在cpu中,通过缓存进行查询。但是链表的节点是分散在堆空间中的,无法通过缓存进行查询,所以查询链表只能在内存中进行查询,导致查询速度变慢。 从另一个角度来说,数组查询只需要[基地址+元素大小*k] 就能找到第k+1个元素的地址,对其取地址就能获得该元素。而链表则需要从第一个元素开始寻找到next指针偏移,再将next指针作为地址获得值。

发表于 2021-03-22 10:42:18

回复(0)

这道题你会答吗?花几分钟告诉大家答案吧!

提交观点

问题信息

上传者:小小

难度:

2条回答

0收藏

807浏览

热门推荐

相关试题

在JDK8中,以下关于接口说法正确...

Java

评论(1)

IP协议负责的内容包括( )

网络基础

评论(1)

以下Python代码中,print...

Python

评论(1)

你为生产代码添加一个计时装饰器,希...

Python

评论(1)

关于 Go 语言中的 channe...

Go

评论(2)

扫描二维码,关注牛客网

意见反馈

下载牛客APP,随时随地刷题

刷真题、补算法、看面经、得内推

使用第三方账号直接登录使用吧:

更多

扫一扫,把题目装进口袋

求职之前,先上牛客

扫描二维码,进入QQ群

扫描二维码,关注牛客公众号

关于我们

加入我们

意见反馈

企业服务

校企合作

联系我们

免责声明

友情链接

公司地址:北京市朝阳区北苑路北美国际商务中心K1座一层-北京牛客科技有限公司

联系方式:010-60728802

投诉举报电话:010-57596212(朝阳人力社保局)

牛客科技© All rights reserved

admin@nowcoder.com

京ICP备14055008号-4

增值电信业务经营许可证

营业执照

人力资源服务许可证

京公网安备

11010502036488号

Back to top: