链表顺序表—优缺点对比

news2024/12/28 21:26:41

目录

链表:

优点:

缺点:

顺序表:

缺点:

优点:


链表:

优点:

1、任意位置插入删除O(1)

2、按需申请释放空间

缺点:

1、不支持下标随机访问

2、CPU高速缓存命中率会更低

  1. 内存非连续性:链表的节点通常不是在内存中连续存储的,每个节点可能分布在不同的内存地址上。这与CPU缓存的一级缓存(L1 Cache)和二级缓存(L2 Cache)的工作方式不匹配,这些缓存更喜欢处理连续内存块,因为它们采用缓存行(cache lines)的方式加载数据。当遍历链表时,由于节点的内存不连续,缓存行可能不断被刷新,导致缓存命中率降低。

  2. 缓存行失效:当CPU加载一个特定内存地址的数据时,它通常会加载整个缓存行,而不仅仅是单个数据项。链表节点之间的间隔较大,可能会导致多个节点散布在不同的缓存行中。当CPU访问一个链表节点,只有一个节点的数据被缓存,而其他节点可能因此而被缓存行失效。这会导致额外的内存访问开销,从而减低了缓存命中率。

  3. 缓存容量限制:CPU缓存有限的容量,如果链表过大,其中的节点数量超过了缓存能够容纳的范围,那么缓存的数据将会频繁被替换出去,导致更低的缓存命中率。这是因为缓存采用替换策略,最近使用的数据可能会被淘汰以给新的数据腾出空间。

顺序表:

缺点:

1、前面部分插入删除数据,效率是O(N),需要挪动数据。

2、空间不够,需要扩容。

        a、扩容是需要付出代价的

        b、一般还会伴随空间浪费。

优点:

1、尾插尾删效率不错。

2、下标的随机访问。

3、CPU高速缓存命中率会更高

  1. 内存连续性:顺序表中的元素是在内存中连续存储的,也就是它们在物理内存上的地址是相邻的。这与CPU缓存的工作方式非常匹配,因为缓存通常加载整个缓存行,连续存储的元素能够充分利用缓存行的性能,提高数据的加载效率,从而提高缓存命中率。

  2. 数据局部性:顺序表充分利用了数据局部性原理,当CPU访问一个元素时,通常会连续地访问相邻的元素。这符合缓存的预取机制,缓存会将可能需要的数据预取到缓存中,因为下一个元素通常在内存中也是相邻的,所以它们很可能也在缓存中。

  3. 缓存容量利用:由于顺序表的数据是紧凑排列的,它可以更好地利用CPU缓存的有限容量。这意味着更多的数据可以同时驻留在缓存中,减少了缓存替换的频率,提高了命中率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Qt实现的轻量级CAD画图软件

1.界面展示 2.功能展示 3.关于Graphics View绘图架构 由于QPainter画图形,不能实现对图形的选择、编辑、移动等操作,所以我的整个项目是基于Craphics View绘图架构来实现的 3.1 Craphics View (1)Craphics View绘图架构介绍 …

js echarts 词云图

<!DOCTYPE html> <html><head><meta charset"utf-8" /><title>词云图</title><script src"./echarts.js"></script><script src"./echarts-wordcloud.js"></script></head>&…

vivado简单仿真入门

打开软件 创建工程 create project ![在这里插入图片描述](https://img-blog.csdnimg.cn/892eda626d394733920854b71ca8f726.png)先next,保留工程路径&#xff0c;配置环境 配置芯片环境 本次芯片类型 xc7k325tffg900-2 创建之后完整的demo 编写仿真内容 timescale 1ns/1…

一、高效构建Java应用:Maven入门和进阶

一、高效构建Java应用&#xff1a;Maven入门和进阶 目录 一、Maven简介和快速入门 1.1 Maven介绍1.2 Maven主要作用理解1.3 Maven安装和配置 二、基于IDEA的Maven工程创建 2.1梳理Maven工程GAVP属性2.2 Idea构建Maven JavaSE工程2.3 Idea构建Maven JavaEE工程2.4 Maven工程项…

态路小课堂丨InfiniBand AOC有源光缆简介

TARLUZ态路 InfiniBand&#xff08;直译为“无限带宽”技术&#xff0c;缩写为IB&#xff09;是一个用于高性能计算的计算机网络通信标准&#xff0c;它具有极高的吞吐量和极低的延迟&#xff0c;用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直…

如何在《阴阳师》游戏中使用单机单窗口软件工具进行防封技巧?

如何在《阴阳师》游戏中使用单机单窗口软件工具进行防封技巧&#xff1f; 首先&#xff0c;定义在《阴阳师》游戏中&#xff0c;使用单机单窗口软件工具进行防封技巧涉及到如何安装和配置软件&#xff0c;以及如何在游戏中应用这些技巧。 我曾经使用过在《阴阳师》游戏中防封…

Fatal error in launcher: Unable to create process using

python在安装库的时候报如下错误&#xff1a; Fatal error in launcher: Unable to create process using "e:\python3.8.8\python.exe" "D:\python3.8.8\Scripts\pip.exe" install qrcode[pil]: ??????????? 除了卸载重装之外&#xff0c;还…

zk-Bench:SNARKs性能对比评估工具

1. 引言 JENS ERNSTBERGER等人2023年论文《zk-Bench: A Toolset for Comparative Evaluation and Performance Benchmarking of SNARKs》。 zk-Bench&#xff0c;定位为&#xff1a; 定位为首个公钥密码学性能评估基准测试框架和工具&#xff0c;重点关注通用ZKP系统的实测评…

JVS规则引擎决策流:轻松解决规则执行中的潜在问题

规则引擎的在线调试功能是指用户在编辑、创建或修改规则时&#xff0c;可以实时地测试这些规则执行的效果&#xff0c;以便及时发现和解决潜在的问题。 接下来我们详细看看在线调试的功能&#xff1a; 1、配置对应的规则&#xff08;这里略过&#xff09;如下图所示&#xff…

蓝桥云课--1024 第 2 场算法双周赛

2-铺地板【算法赛】&#xff08;找规律&#xff09; 一、题目要求 二、思路 &#xff08;1&#xff09;因为每块地砖都是2*3的规格&#xff1a; 1.n<2或者m<2的时候&#xff0c;则不能使用上述规格的瓷砖 No 2.n<3或者m<3的时候&#xff0c;也不能使用上述规格…

项目管理中,如何建立里程碑式管理?

项目进度控制是项目管理中的重要环节&#xff0c;也是最具挑战性的工作之一。在项目管理中&#xff0c;项目进度失控受到多种因素的影响&#xff0c;导致项目失控。 为了解决这个问题&#xff0c;我们可以借鉴在旅途中学到的经验&#xff0c;通过设立里程碑来了解项目进度&am…

macOS 12 Monterey v12.7.1正式版:开启全新的操作系统体验

macOS 12 Monterey已经向所有兼容的Mac设备推出&#xff0c;为您带来了一系列强大的新功能和改进。这个全新的操作系统版本&#xff0c;不仅带来了更流畅的用户体验&#xff0c;还增强了与iOS设备的无缝集成&#xff0c;让您的设备使用更加高效&#xff0c;更加便捷。 macOS 1…

一文说尽零售数据分析指标体系

零售的本质业务模式是通过在各种渠道上吸引客户来购买我们的商品来实现盈利&#xff0c;其实就是客户-渠道-商品&#xff0c;也就是我们常说的“人、场、货”&#xff0c;除此之外还有供应链、财务等起到重要的辅助作用。因此如果要构建起系统化的零售数据分析指标体系&#xf…

压敏电阻有哪些原理?|深圳比创达电子EMC

压敏电阻是一种金属氧化物陶瓷半导体电阻器。它以氧化锌(ZnO)为基料&#xff0c;加入多种(一般5&#xff5e;10种)其它添加剂&#xff0c;经压制成坯体&#xff0c;高温烧结&#xff0c;成为具有晶界特性的多晶半导体陶瓷组件。氧化锌压敏电阻器的微观结构如下图1所示。 氧化锌…

linux 内存检测工具 kfence 详解(二)

系列博文&#xff1a; linux 内存检测工具 kfence 详解(一) linux 内存检测工具 kfence 详解(二) 回上一篇博文 0. 前言 kfence虽然代码不多&#xff0c;但设计的内容、逻辑比较多。为了更加清晰、轻松地理解kfence&#xff0c;笔者将其知识点分两篇博文&#xff1a; 第一篇…

美海军用于情报、监视和侦察的中大型无人系统概述

源自&#xff1a;中国指挥与控制学会 “人工智能技术与咨询” 发布 简 介 1 引 言 2 超大型无人潜航器 图1 波音“回声航行者”无人潜航器 图2 “虎鲸”超大型无人潜航器 3 中型无人水面舰艇 图3 “海鹰”无人水面舰艇 图4 “海上猎人”无人水面舰艇 4 …

今天玩到一个微信钓鱼小游戏,很有趣,居然还能玩萝卜刀

这款钓鱼冠军微信小游戏很有创意&#xff0c;除了传统的钓鱼玩法&#xff0c;居然还融合了黄金矿工的玩法&#xff0c;很不错的想法&#xff0c;而且居然还能玩最近比较火的萝卜刀&#xff0c;快来扫码体验一下吧&#xff0c;或者微信里搜索 《钓鱼冠军》小游戏&#xff0c;认…

Python轮廓追踪【OpenCV形态学操作】

文章目录 概要代码运行结果 概要 一些理论知识 OpenCV形态学操作理论1 OpenCV形态学操作理论2 OpenCV轮廓操作|轮廓类似详解 代码 代码如下&#xff0c;可以直接运行 import cv2 as cv# 定义结构元素 kernel cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) # print kern…

YOLOv8官方教程:如何训练模型

文章目录 一、简介二、YOLOv8的优点train模式特色 三、训练3.1 单 GPU 和 CPU 训练示例3.2 多GPU训练3.3 Apple M1 和 M2 MPS 训练3.4 恢复中断的训练 四、其他参数五、训练Log5.1 Comet5.2 ClearML5.3 TensorBoard 一、简介 本文介绍YOLOv8如何在单GPU、多GPU和Apple设备上训…

家用小型洗衣机哪款性价比高?热门内衣洗衣机测评

随着现代社会的快速发展&#xff0c;洗衣机已经成为了家家必备的电器产品。但是我们清洗贴身衣物的话&#xff0c;并不能直接扔进洗衣机里面洗&#xff0c;主要原因就是会与其他的衣物产生交叉的感染&#xff0c;而且又不能更好地除去贴身衣物上的细菌&#xff0c;因此一台内衣…