当前位置: 首页 > news >正文

数据结构(2)线性表-顺序表

知道一个算法的好坏怎么去判断以后,就该正式的去学习一些常见的数据结构,当然,这里的数据结构仅仅是初阶,不会挨个一个一个学完,后期慢慢来。

一、数据结构总论

一般按照逻辑结构和存储结构来分类,在初阶的学习时,虽不能全部学完,但基本每个类别都能见到例子。

1.按逻辑结构分类

按照逻辑结构分类,可以分为集合结构(数据元素同属于一个集合,但是并没有任何的关系)、线性结构(数据元素一对一,好像一条线一样连在了一起)、树形结构(数据元素一对多的关系,就好像一个树的主干的根只有一个,但是他身上每一个节点都可能有好几个树枝)、图状/网状结构(这种结构就类似于在天上俯瞰一个城市的公路一样,每条路的十字看做一个数据元素的话,那就是多对多的关系)

2.按存储结构分类

按照存储结构有顺序存储(如数组,数组元素就是在内存中连续的存储)、链式存储(其实在C语言学习结构体的时候我们就已经见过怎样建立一个链表节点,即一个数据域,一个地址,这个地址是指向链式存储的下一个数据元素)、索引存储、哈希存储(根据散列函数的计算而定位数据元素)。

二、线性表

线性表是一类数据结构的总称,这一类数据结构最明显的特点就是逻辑上是线性的,但是物理上不一定是线性的。

也就是说,线性表在使用的时候,在我们的大脑中思考就是连续的、线性的,但实际上在内存中的存储可不一定是顺序存储。

三、顺序表

1.概述

这次学习的顺序表就是属于线性表,符合线性表的特征,即逻辑结构是线性结构,且数据顺序存储(底层实现类似于数组,或者说借助于数组)。

2.顺序表和数组的区别

这个时候就有人要问了,既然你跟我说顺序表借助于数组实现,那为啥不就当成数组呢。它们两个的关系就类似于什么呢:
我相信基本上能跟编程打交道的,你说你自己一点也不玩游戏,我是不信的,甭管玩手机游戏还是电脑游戏,你要玩游戏最基本得有个设备吧,就说手机游戏,你弄个平板玩,正常就搂着玩就行了呗,但是有的人嫌举着累,买个支架,又嫌自己打游戏的时候发热会导致掉帧,卡的不行,又买了一个散热器,手老出汗买个指套,更有甚者玩个手机游戏开加速器。

顺序表和数组基本就是这样的,数组只能存一系列数据,你存着只能取出来用,对里面的数据进行增删改是很麻烦的,顺序表在创建好以后,相当于数组+增加/删除/修改/查找……一系列的辅助工具,帮助你对数据进行维护,数组就没有这个条件。

3.顺序表的声明

①静态顺序表

静态数据表就是用定长数组来存储数据的,当然,并不等同于数组,一般都是这样定义的:

#define定义是为了方便修改静态顺序表的大小,即底层的数组的大小,为什么要将数组的类型由typedef定义一下呢,直接写个int不行吗?

给顺序表的数据的类型取别名也是为了方便修改顺序表所存储的数据类型。

这样看来顺序表也没比数组好到哪去,只不过可以确定有效数据个数而已。

这么看当然看不出来顺序表相对于数组的优点,因为正常情况下,比如用顺序表来存储双11某用户的订单个数,这种玩意肯定是动态的,不能说你就给他7个大小的内存,假如就说成7个订单,那万一双十一买的多了咋办,难道还能让用户少买一点吗?肯定是用户创建的订单决定数据存储的大小,也就是经常用的就是动态顺序表。

②动态顺序表

动态和静态的区别在哪里那,其实举的小例子已经给出了,静态的顺序表存储的数据个数是固定的,你给少了吧就不够用,给多了吧,又给内存浪费了(不要小看内存浪费,一个人浪费1000个字节,人多起来再多的内存都不够用)。

千万不要说,那你说要多大,比如存7个int,我就给你#define N 7,你要几我就定义几,这真就是对程序的内存申请不了解啊,在C语言学习的时候不说别的,编译的时候就给这个顺序表的内存大小固定死了,你把N定义的值改了有什么用,你程序已经写好了,软件里就是这么大,你说改成9,那么软件就不能用了,就得重新把你改好的应用到软件里,你敢想象双十一,特别是双十一的晚上购物平台提交不了订单会造成多大的损失吗,等你改好再上架,黄花菜都凉了。

因此,来看我们动态顺序表的声明(动态就是可以根据你给的数据,去调整申请的内存大小)。

因为要动态申请,所以提前准备一个指针,去接收不管是malloc还是calloc等去申请的那块内存空间的地址,有效数据个数不用多说,而静态顺序表的大小是确定的,动态顺序表只能动态计算去确定,因此多加一个capacity变量。

4.动态顺序表的初始化

声明好一个变量做的第一件事就是初始化,创建一个顺序表也是如此:

信心满满的写完了,然后:

???

你这破计算机犯什么毛病,我已经第六行就是给你初始化去的,你告诉我未初始化干嘛。

其实还是我们之前提过的一个问题,传值调用和传址调用。

传值调用只是对实参的一个临时拷贝,如果仅仅用于计算,无可厚非,但是如果想传值用形参来实现修改实参的话,那还是想想算了。

形参的值不影响实参的值,出了函数还直接没了。

如果相对实参进行修改,那还是传地址过来吧,让我顺着地址给你修改:

又再次复习了一下,这次可就是传值传址调用的实例了,不再是空泛的硬憋出来的例子。

5.顺序表的插入

尾插

比如这样的数据:

想在尾部插入的话得有size吧,知道了size才能知道该插入的位置(即我们想象出来的下标),这块内存空间的起始地址也得有吧,因此,干脆直接像初始化一样,传过来这个顺序表的地址,你想去用这个顺序表哪个成员就用哪个成员,最后另外写出来一个参数,这个参数接收需要插入的元素:

当然,这么写就是错的,顺序表只初始化是没有对应的内存空间的,并没有给这个顺序表申请空间,是不能去赋值的,所以在此之前先怼一个内存开辟,由于考虑到内存可能溢出的问题,所以malloc calloc realloc用realloc,这样如果第一次开辟的内存不够用,可以自主开辟:

realloc第一个参数如果是NULL的话,效果和malloc是一样的,因为需要修改的位置为空,那么就不需要修改,直接开辟即可,返回值仍需检查。

调试结果就是这样的,其实挺简单的。

头插

这个有两个要注意的点,一个是头插必须把已有的数据后移,空出来顺序表最前面的位置;后移必后面的先移,不然就会导致数据的覆盖:

最后空出来的赋值就简单了,下面是代码表达:

调试没问题:

指定位置插入

其实如果空想的话,你给我的下标是几,那我就把这个下标开始加上后面的全部都后移,最后在这个位置插入你想插的元素:

真是服了,写出来一大堆乱码,检查了半天是因为自己在扩容的时候写错了:

我算出来的newcapacity是元素个数,人家realloc要的是字节数,还得乘一下,调试半天。

其它没什么疑问:

6.顺序表的删除

尾删

直接给出

删除操作,下意识的我们就可能想到,必须把尾部的数据给删除了,但是实际上删除以后难道计算机对于这块位置就不再管了吗?显然不是的,只是变成乱码了而已,假设给上乱码,你不还是得size--嘛,反正也就是为了不再访问顺序表尾部的值,直接size--即可

头删

从前往后覆盖即可:

比如这个,就是从2->1,3->2等等即可。

代码表达:

测试:

一样道理,即使最后的不删,size为3,不管你做遍历还是插入等一系列操作,都不会被这个值影响。

指定位置删除

类似于头插的前移,只不过与所给位置有关而已:

调试:

7.顺序表的查找

参数肯定是一个顺序表,一个需要查找的元素,不过这次仅仅是查找,可以传值调用了,毕竟不要求对数据源进行修改,仅仅是对比。

调试:

8.顺序表遍历打印

当然,这里只写int类型的遍历:

调试:

毋庸置疑。

9.顺序表的销毁

如果你写的是局部变量,那就等出了函数系统自动回收空间就算了,但是我们用的最多的是动态顺序表,也就意味着有一块动态开辟的内存空间,碰见这样的事的话,用完了手动给它回收吧,不过我们要给它封装成一个函数:

不用多解释,其实就是调用了个free,最后置指针为空。

相关文章:

数据结构(2)线性表-顺序表

知道一个算法的好坏怎么去判断以后,就该正式的去学习一些常见的数据结构,当然,这里的数据结构仅仅是初阶,不会挨个一个一个学完,后期慢慢来。 一、数据结构总论 一般按照逻辑结构和存储结构来分类,在初阶…...

【深度学习-Day 10】机器学习基石:从零入门线性回归与逻辑回归

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

芯片:金线的作用

一、金线的核心作用:互联芯片与外部封装 金线(Gold Wire)在芯片制造中主要用于引线键合(Wire Bonding),这是将芯片(Die)与外部封装引脚(Lead Frame或Substrate&#xff…...

Vue3+uniapp 封装axios

1.第一步在项目根目录新建utils文件夹,里边新建两个文件request.js和uni-api-promisify.js 2.request.js 代码 要安装axios import axios from axios import { showToast } from /utils/uni-api-promisify// 创建axios实例 const service axios.create({baseURL:…...

Nacos源码—9.Nacos升级gRPC分析七

大纲 10.gRPC客户端初始化分析 11.gRPC客户端的心跳机制(健康检查) 12.gRPC服务端如何处理客户端的建立连接请求 13.gRPC服务端如何映射各种请求与对应的Handler处理类 14.gRPC简单介绍 10.gRPC客户端初始化分析 (1)gRPC客户端代理初始化的源码 (2)gRPC客户端启动的源码…...

与智能体高效协作:Kimi交互逻辑探索与提示词设计实践【附kimi提示词合集下载】

引言:智能时代的人机协作新范式 在持续使用多款AI助手完成技术文档分析、数据分析等任务后,我逐渐意识到工具效能的核心不仅在于技术参数,更在于使用者对交互逻辑的理解深度。本文将基于实际项目经验,探讨智能体交互的本质规律&a…...

Web 架构之负载均衡会话保持

文章目录 一、引言二、思维导图三、负载均衡会话保持的概念3.1 定义3.2 作用 四、负载均衡会话保持的实现方式4.1 基于 IP 地址原理代码示例(以 Nginx 为例)注释 4.2 基于 Cookie原理代码示例(以 HAProxy 为例)注释 4.3 基于 SSL …...

遨游卫星电话与普通手机有什么区别?

在数字化浪潮席卷全球的今天,通信设备的角色早已超越传统语音工具,成为连接物理世界与数字世界的核心枢纽。然而,当普通手机在都市丛林中游刃有余时,面对偏远地区、危险作业场景的应急通信需求,其局限性便显露无遗。遨…...

【Redis】谈谈Redis的设计

Redis(Remote Dictionary Service)是一个高性能的内存键值数据库,其设计核心是速度、简单性和灵活性。以下从架构、数据结构、持久化、网络模型等方面解析 Redis 的设计实现原理: 1. 核心设计思想 内存优先:数据主要存…...

聊天项目总结

目前项目 完成了个人信息修改,添加好友,创建群聊,添加群聊,在线状态,删除好友,退出群,解散群,好友申请,群资料修改,群管理,群主转让,…...

智能手表整机装配作业指导书(SOP)

📄 智能手表整机装配作业指导书(SOP) 产品名称:Aurora Watch S1 产品型号:AWS1-BG22 版本号:SOP-AWS1-V1.0 编制日期:2025年5月6日 编制单位:制造工程部(ME)…...

c语言第一个小游戏:贪吃蛇小游戏05

贪吃蛇脱缰自动向右走&#xff1a;脱缰的野蛇 #include <curses.h> #include <stdlib.h> struct snake{ int hang; int lie; struct snake *next; }; struct snake *head; struct snake *tail; void initNcurse() { initscr(); keypad(stdscr,1); } int …...

ES6中的解构

在 JavaScript&#xff08;包括 TypeScript&#xff09;中&#xff0c;数组解构和对象解构是 ES6 引入的两个非常实用的语法特性&#xff0c;它们可以帮助我们更方便地从数组或对象中提取数据。 一、数组解构&#xff08;Array Destructuring&#xff09; &#x1f4cc; 基本用…...

Pycharm的终端执行allure命令出现command not found

Pycharm的接口自动化项目用的是venv虚拟环境&#xff0c;已下载和配置好Allure路径&#xff0c;查看Allure版本正常。 问题&#xff1a;在重新打开Pycham的项目时&#xff0c;在Pycharm终端中执行allure相关命令就会报错zsh: allure: command not found 原因&#xff1a;在PyC…...

[ctfshow web入门] web72

信息收集 下载index.php并查看&#xff0c;和上题差不多 error_reporting(0); ini_set(display_errors, 0); // 你们在炫技吗&#xff1f; if(isset($_POST[c])){$c $_POST[c];eval($c);$s ob_get_contents();ob_end_clean();echo preg_replace("/[0-9]|[a-z]/i",…...

【Folium】使用离线地图

文章目录 相关文献离线地图下载Folium 使用离线地图 相关文献 Folium — Folium 0.19.5 documentationOffline Map Maker 离线地图下载 我们使用 Offline Map Maker 进行地图下载。 特别注意&#xff1a;Folium 默认支持 WGS84 坐标系&#xff0c;建议下载 WGS84 坐标系的地…...

嵌入式自学第二十天(5.13)

&#xff08;1&#xff09;线性表顺序存储的优缺点&#xff1a; 优点&#xff1a;无需为表中逻辑关系添加额外存储空间&#xff1b; 可以快速随机访问元素&#xff0c;时间复杂度O(1)。 缺点&#xff1a;插入删除需要移动元素O(n&#xff09;&#xff1b; 无法动态存储。 …...

ThingsBoard3.9.1 MQTT Topic(4)

本章中的主题适用于网关设备。 1.网关订阅设备属性的topic&#xff1a;v1/gateway/attributes/response 订阅后接收到的响应格式。 { "id":3, "device":"m1", "values":{ "version":"V1.2"…...

centos中JDK_PATH 如何设置

在 CentOS 7.9 中设置 JDK_PATH&#xff08;即 JAVA_HOME&#xff09;的步骤如下。JAVA_HOME 是一个环境变量&#xff0c;用于指向 Java 开发工具包&#xff08;JDK&#xff09;的安装路径。 1. 查找 JDK 安装路径 首先&#xff0c;你需要找到 JDK 的安装路径。可以通过以下命…...

一次讲清 FP32 / FP16 / BF16 / INT8 / INT4

一次讲清 FP32 / FP16 / BF16 / INT8 / INT4 目标&#xff1a;让你3 分钟读懂格式原理&#xff0c;5 分钟学会选型。 只记一句&#xff1a;“指数定范围&#xff0c;尾数定精度&#xff1b;位宽定显存&#xff0c;硬件定成本”。 1 | 为什么要有这么多格式&#xff1f; …...

PH热榜 | 2025-05-13

1. FirstQuadrant 标语&#xff1a;通过以人为本的人工智能来最大化B2B销售 介绍&#xff1a;销售人工智能&#xff0c;帮助创始人和收益团队提高效率&#xff0c;保持组织有序&#xff0c;并促成更多交易。它通过简化销售幕后工作&#xff0c;确保每个细节都不会遗漏。 产品…...

java基础-泛型

文章目录 目录 文章目录 前言 一、泛型的作用 1.类型安全 2.通用性 这里再举个例子 二、泛型的实现 1.泛型类 2.泛型接口 3.泛型方法 4.T符号的起源&#xff08;额外&#xff09; 三、泛型擦除 四、泛型通配符 1.上界通配符&#xff08; &#xff09; 为什么用于…...

对抗帕金森:在疾病阴影下,如何重掌生活主动权?

帕金森病&#xff0c;一种影响全球超 1000 万人的神经退行性疾病&#xff0c;正无声地改变着患者的生活轨迹。随着大脑中多巴胺分泌减少&#xff0c;患者逐渐出现肢体震颤、肌肉僵硬、步态迟缓等症状&#xff0c;甚至连扣纽扣、端水杯这类日常动作都变得艰难。更棘手的是&#…...

网络协议与系统架构分析实战:工具与方法全解

网络协议与系统架构分析实战&#xff1a;工具与方法全解 在互联网系统的开发、运维与安全分析中&#xff0c;协议解析与抓包分析是不可或缺的核心技能。本文将系统梳理主流协议解析工具、协议自动识别方案&#xff0c;并结合实际抓包案例&#xff0c;讲解如何还原和推测底层系…...

使用PocketFlow构建Web Search Agent

前言 本文介绍的是PocketFlow的cookbook中的pocketflow-agent部分。 回顾一下PocketFlow的核心架构&#xff1a; 每一个节点的架构&#xff1a; 具体介绍可以看上一篇文章&#xff1a; “Pocket Flow&#xff0c;一个仅用 100 行代码实现的 LLM 框架” 实现效果 这个Web S…...

基于STM32、HAL库的TLV320AIC3204IRHBR音频接口芯片驱动程序设计

一、简介: ADAU1701JSTZ-RL 是一款高性能音频编解码器 (Codec),专为便携式和低功耗应用设计。它集成了 ADC、DAC、麦克风前置放大器、耳机放大器和数字信号处理功能,支持 I2S/PCM 音频接口和 I2C 控制接口,非常适合与 STM32 微控制器配合使用。 二、硬件接口: 典型的 ST…...

轻量级高性能推理引擎MNN 学习笔记 02.MNN主要API

1. MNN 主要API 注意&#xff1a;本学习笔记只介绍了我在学习过程中常用的API &#xff0c;更多MNN API 请参考官方文档。 1.1. 推理时操作流程 创建Interpreter &#xff1a; createFromFile()通过Interpreter创建Session &#xff1a;createSession()设置输入数据: getSes…...

STM32 ADC 模数转换器详解:原理、配置与应用

STM32 ADC 模数转换器详解&#xff1a;原理、配置与应用 在嵌入式系统中&#xff0c;模数转换&#xff08;ADC&#xff09;是实现传感器信号采集、信号处理等任务的关键环节。STM32 微控制器作为一款功能强大的 32 位微控制器&#xff0c;其内置的 ADC 模块为开发者提供了高效…...

18.Excel数据透视表:第1部分创建数据透视表

一 什么是数据透视表 通过万花筒可以用不同的方式査看里面画面图像&#xff0c;在excel中可以将数据透视表看作是对准数据的万花筒&#xff0c;用不同角度去观察数据&#xff0c;也可以旋转数据&#xff0c;对数据进行重新排列&#xff0c;对大量的数据可以快速的汇总和建立交叉…...

AI 模型训练轻量化技术在军事领域的实战应用与技术解析

AI 模型训练轻量化技术在军事领域的实战应用与技术解析 一、引言 在人工智能与军事领域深度融合的当下&#xff0c;AI 模型训练轻量化技术正成为破解战场资源限制的关键钥匙。通过模型压缩、量化、剪枝等核心技术&#xff0c;轻量化模型在算力受限、通信不稳定的复杂战场环境中…...

科学养生,开启健康生活

在快节奏的现代生活中&#xff0c;健康养生成为人们关注的焦点。科学合理的养生方式&#xff0c;无需依赖传统医学理论&#xff0c;也能有效提升生活质量&#xff0c;为身体注入活力。​ 均衡饮食是养生的基础。每天应保证摄入足够的蛋白质、碳水化合物和脂肪&#xff0c;同时…...

高效跨平台文件传输与管理的工具

软件介绍 这款名为 Coolmuster Mobile Transfer 的工具是一款多平台支持的文件传输工具&#xff0c;能高效地在不同设备间进行文件传输与管理。 适用场景 它适用于多种场景&#xff0c;无论是个人文件整理、家庭成员间资料共享&#xff0c;还是企业场景下的工作文件处理&…...

如何优化 Linux 服务器的磁盘 I/O 性能

# 优化 Linux 服务器磁盘 I/O 性能的全面指南 ## 1. 识别 I/O 瓶颈 首先确定是否存在 I/O 瓶颈以及瓶颈位置&#xff1a; bash # 使用 iostat 查看磁盘 I/O 统计 iostat -x 1 # 使用 iotop 查看进程级 I/O 使用情况 iotop # 使用 vmstat 查看系统整体 I/O 情况 vmstat 1 …...

Python基础学习-Day23

目录 基础概念转换器&#xff08;transformer&#xff09;估计器&#xff08;estimator&#xff09;管道&#xff08;pipeline&#xff09; 实例pipeline 基础概念 pipeline在机器学习领域可以翻译为“管道”&#xff0c;也可以翻译为“流水线”&#xff0c;是机器学习中一个重…...

【Ubuntu】扩充磁盘大小

sudo apt-get install gparted 安装完成后&#xff0c;搜索gparted软件&#xff0c;打开gparted 参考...

数据治理域——日志数据采集设计

摘要 本文主要介绍了Web页面端日志采集的设计。首先阐述了页面浏览日志采集&#xff0c;包括客户端日志采集的实现方式、采集内容及技术亮点。接着介绍了无线客户端端日志采集&#xff0c;包括UserTrack的核心设计、移动端与浏览器端采集差异以及典型应用场景崩溃分析。最后探…...

Dinky 安装部署并配置提交 Flink Yarn 任务

官方文档 https://www.dinky.org.cn/docs/1.1/deploy_guide/normal_deploy 版本 dinky 1.1.0、1.2.3 当前最新发布版本为 1.2.3 &#xff0c;但是官方文档最新稳定版为 1.1 &#xff0c;所以先选择 1.1.0&#xff0c;验证通过后&#xff0c;再尝试 1.2.3 &#xff0c;发现 1…...

杰理-701-手表sdk无法电脑连接经典蓝牙

杰理-701-手表sdk无法电脑连接经典蓝牙 只有手机可以连接经典蓝牙播放音乐&#xff0c;电脑无法连接&#xff0c;需要关闭emitter功能 交流q群&#xff1a;187115320...

Timsort 算法

文章目录 1 基础理解1.1 定义和原理1.2 工作原理 2 算法实现2.1 Python 代码实现2.1.1 代码2.1.2 核心逻辑计算最小运行长度&#xff08;calc_min_run(n)&#xff09;插入排序&#xff08;insertion_sort(arr, left, right)&#xff09; 2.2 Java 代码实现2.3 C 代码实现 3 逻辑…...

Go构建高并发权重抽奖系统:从设计到优化全流程指南

引言&#xff1a;为何需要专业抽奖系统&#xff1f; 在现代互联网应用中&#xff0c;抽奖系统被广泛用于营销活动、用户激励等场景。一个好的抽奖系统需要满足&#xff1a; 公平性&#xff1a;确保概率分布准确高性能&#xff1a;支持高并发抽奖请求安全性&#xff1a;防止作…...

深度学习计算

深度学习的飞速发展离不开强大的计算能力支撑。从张量计算到 GPU 加速&#xff0c;从自动微分到分布式计算&#xff0c;深度学习计算的每一项技术都如同精密仪器中的关键齿轮&#xff0c;推动着模型性能的不断提升。本文深入剖析深度学习计算的核心技术、优化策略以及前沿趋势&…...

【Bluedroid】蓝牙 HID DEVICE 初始化流程源码解析

本文深入剖析Android蓝牙协议栈中HID设备&#xff08;BT-HD&#xff09;服务的初始化与启用流程&#xff0c;从接口初始化、服务掩码管理、服务请求路由到属性回调通知&#xff0c;完整展现蓝牙HID服务激活的技术路径。通过代码逻辑梳理&#xff0c;揭示服务启用的核心机制&…...

Kotlin 中的 Unit 类型的作用以及 Java 中 Void 的区别

在 Kotlin 中&#xff0c;Unit 类型和 Java 中的 void 关键字都用于表示“没有返回值”的函数&#xff0c;但它们在设计理念、类型系统和实际使用中有显著的区别。 1 Kotlin 中的 Unit 类型 表示无返回值&#xff1a; 当函数不返回有意义的值时&#xff0c;Kotlin 使用 Unit …...

Gemini 2.5 推动视频理解进入新时代

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Spark Streaming 内部运行机制详解

核心思想&#xff1a;将实时数据流切割为“微批次”&#xff0c;利用 Spark Core 的批处理能力进行准实时计算。 1. 核心流程拆解 数据接收&#xff08;Input Data Stream&#xff09; 输入源&#xff1a;Kafka、Flume、Socket 等实时数据流。 接收器&#xff08;Receiver&…...

Feign+Resilience4j实现微服务熔断机制:原理与实战

引言&#xff1a;为什么需要熔断器&#xff1f; 在微服务架构中&#xff0c;服务间的依赖调用变得非常普遍。想象一下这样的场景&#xff1a;订单服务依赖支付服务&#xff0c;支付服务又依赖银行网关服务。如果银行网关服务出现故障&#xff0c;故障会向上蔓延&#xff0c;导…...

什么是SparkONYarn模式

1. 什么是 Spark on YARN&#xff1f; Spark on YARN 是 Apache Spark 的一种部署模式&#xff0c;允许 Spark 应用程序在 Hadoop YARN 集群上运行&#xff0c;充分利用 YARN 的资源管理和调度能力。这种模式将 Spark 与 Hadoop 生态深度集成&#xff0c;使企业能够在同一集群…...

鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目

本地已经安装deveco5.0 使用5.0创建开源鸿蒙项目 文件->新建->新建项目 直接创建空项目,一路默认 next 直接编译项目 直接连接开源鸿蒙5.0开发板编译会提示 compatibleSdkVersion and releaseType of the app do not match the apiVersion and releaseType on the dev…...

操作系统:内存管理

目录 1、主要目标 2、核心概念和技术 2.1 物理内存与虚拟内存 2.2 内存分页机制 2.3 页面置换算法 3、监控与性能优化 3.1 查看物理内存 3.2 查看虚拟内存 3.3 性能问题 1> 内存不足&#xff08;OOM&#xff09; 2> 内存泄漏 3> 内存碎片 3.4 性能优化策…...

腾讯优化DeepSeek的DeepEP通信框架:开启AI大模型训练新时代

事件背景 在人工智能&#xff08;AI&#xff09;技术迅猛发展的当下&#xff0c;大规模AI模型训练的需求与日俱增。高效的数据通信成为了提升AI模型训练效率的关键环节。混合专家模型&#xff08;MoE&#xff09;作为一种高效的大模型架构&#xff0c;通过动态分配专家网络处理…...