自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 14-数据库学习笔记(并行查询架构)

并行数据库通过多处理器、多磁盘协同执行查询,显著提升大容量数据处理效率。面对海量数据与复杂分析任务,其核心目标是缩短响应时间、提高资源利用率与系统吞吐量。现代数据库依赖并行技术应对数据规模增长与多核硬件普及,但性能受限于I/O、网络等瓶颈。并行数据库强调任务分解与并发执行,区别于分布式数据库的数据分片与节点协同。进程调度模型如抢占式与非抢占式调度,决定任务执行顺序与资源分配;一工作器一进程或一线程模型影响系统并发能力与资源共享效率。

2026-10-10 22:38:15 160

原创 13-数据库学习笔记(查询执行)

SQL需转化为查询计划才能执行,其核心是将声明式语言转为可运行的算子树。主流处理模型包括:迭代器模型(火山模型)支持流水线、低内存开销但函数调用频繁;物化模型全量存储中间结果,内存占用高且延迟大;向量化模型批量处理数据,提升CPU利用率与性能,适合海量数据场景。三者在控制流与数据流设计上各有权衡,适用于不同负载类型。

2026-10-04 21:40:37 376

原创 12-数据库学习笔记(五种连接算法)

因为我们通常不会把所有相关信息都塞进一张表,而是把不同类型的信息分开存储;当查询需要同时使用这些信息时,就必须把它们“连接”起来。当我们需要查询每个学生的姓名和数据库课程时,我们就需要把Student.学号和Score.学号对应起来,这就是join。那为什么我们不把所有信息都放在一张大表里?这样看起来确实方便,但如果一个学生有很多门课怎么办,例如张三有:数据库 90 操作系统 88 计算机网络 92 数据结构 95。所以我们就需要把数据库的信息拆开,设计成Student:学号,姓名,专业。

2026-10-04 13:11:01 369

原创 11-数据库学习笔记(排序与聚合算法)

这时数据库就需要把学生按照score进行排序。但数据库里的数据可能非常大。比如有1000万条学生数据,共占用了5GB的磁盘空间,而计算机可能只有512MB的内存,这时就不能直接把所有数据从磁盘读到内存里从而使用sort()函数进行排序。这也就是数据库排序和普通程序排序最大的区别之一。

2026-10-03 22:39:45 419

原创 10-数据库学习笔记(数据结构中的锁机制)

自旋锁适合低竞争、短临界区场景;OS互斥锁适合高竞争、长临界区场景;自适应闩锁综合性能最优,是现代数据库内核主流选型。

2026-09-05 18:47:01 422

原创 09-数据库学习笔记(数据库索引与过滤器)

索引:基于数据表部分属性构建的有序结构化数据结构,核心功能是定位具体元组在磁盘或内存中的存储地址。其典型代表为 B+ 树,适用于需要获取完整元组的业务场景。过滤器:概率型数据结构,仅用于判断元素大概率是否存在于集合中,无法返回元素的具体存储位置。其核心价值在于查询前置预判、减少无效 IO,典型代表为布隆过滤器。索引负责"精准找数据",过滤器负责"快速筛数据",二者搭配使用可大幅优化数据库整体查询性能。检索需求推荐技术核心优势磁盘点查询 / 范围查询B+ 树稳定性与综合性能最优静态存在性预判。

2026-08-20 11:18:49 340

原创 08-数据库学习笔记(B+树数据结构)

数据库索引是数据表指定字段的有序数据副本,采用独立于原始数据表的存储方式。其核心原理是记录索引字段值与对应数据行物理存储位置的映射关联关系。数据库执行查询操作时,可通过索引快速定位目标数据行,规避低效的全表扫描逻辑。同时,数据库系统会实时同步维护索引与原始数据表的数据一致性,确保所有基于索引的查询结果准确无误。

2026-08-15 11:47:58 394

原创 HTML核心知识点笔记

:术语的描述/定义(description)。<dl>中包含和<dd>超文本标记语言,用于构建网页结构。

2026-08-12 18:24:34 432

原创 07-数据库学习笔记(数据库哈希表)

目标:理想情况下 O (1) 时间完成查找、插入、删除。

2026-08-08 00:04:59 211

原创 06-数据库学习笔记(存储模型与数据压缩)

面向日常在线交易、短事务、高频随机读写的业务场景,互联网后端、电商、支付、进销存、银行系统均属于这类。面向海量历史数据统计、多维报表、大数据分析、离线计算,用于企业经营决策,不处理在线实时交易。核心是处理“复杂分析”,特点是操作耗时久、查询逻辑复杂,需要扫描数据库的大部分数据,用于从大量数据中提取有价值的信息。一套数据库同时承载 OLTP 在线事务 + OLAP 数据分析 两种负载,打破传统 TP 和 AP 必须两套系统分开部署的架构。

2026-07-31 21:44:09 374

原创 05-数据库学习笔记(缓冲池优化和存储模型)

单一大缓冲池:整个缓冲池共用一套闩锁、LRU 链表。大量线程同时读写缓存页面时,会争抢同一个全局闩锁,频繁阻塞,并发性能暴跌。(通俗理解:单缓冲池:一间超大公共阅览室,所有人共用一把大门锁,进门都要排队;多缓冲池:拆成十几个小阅览室,各自带门锁。大家分开进入,几乎不用排队。

2026-07-30 11:10:40 199

原创 04-数据库学习笔记(缓冲池与内存磁盘管理)

mmap 下,内存紧张时操作系统想踢走哪个页面就踢哪个。极端情况:操作系统把正在查询的热点页强行清出内存,频繁出现缺页中断,性能雪崩。数据库自己的缓冲池:数据库自身决定淘汰谁;mmap:操作系统决定淘汰谁。

2026-07-22 22:40:15 364

原创 03-数据库学习笔记(数据库存储)

CPU 内置,速度最快、容量最小(字节级),CPU 直接运算使用,延迟<1ns。CPU 片内缓存,KB~MB 级。L1/L2:单核心私有,速度快;L3:多核共享,容量更大、稍慢。作用:缓存热点数据,减少内存访问,延迟几~几十 ns。断电数据丢失。主板内存条,DRAM 介质,GB~TB 级。程序运行的核心载体,CPU 仅直接读写缓存 / 内存,延迟 60-120ns。断电数据丢失。持久化存储,TB 海量容量、价格低廉,断电保留数据。SSD(闪存):微秒级延迟,速度快;

2026-07-22 16:33:02 253

原创 02-数据库学习笔记(SQL引擎)

SQL语言基础摘要 SQL语言分为四大类: DML:数据操作语言(SELECT, INSERT, UPDATE, DELETE) DDL:数据定义语言(CREATE, ALTER, DROP) DCL:数据控制语言(GRANT, REVOKE) TCL:事务控制语言(COMMIT, ROLLBACK) 数据库基本操作 包括数据库创建、查看、使用和删除,以及表的创建、修改和删除操作。常用数据类型有整数、字符串、小数、日期等。 数据操作(DML) 插入数据:INSERT INTO 表名 VALUES/指定字段插

2026-07-20 21:22:50 242

原创 01-数据库学习笔记(数据库概述和关系代数)

是对现实世界数据特征的抽象、描述工具,用来定义数据怎么组织、数据之间有什么联系、有哪些约束。作用:把现实业务(学生、课程、订单)转换成计算机能存储识别的数据结构。

2026-07-14 22:57:29 257

原创 【算法】高精度

❌(未使用高精度算法使得测试数据超出范围)

2026-03-09 21:48:45 81

原创 【算法】回溯算法

回溯算法是一种利用递归遍历所有情况的算法,这个性质与DFS(深度优先搜索)十分相似,都是先探索完一条路径,再回溯的探索下一条路径。回溯算法=DFS+剪枝。从我们给出的例题可以看出,解决几乎所有需要遍历所有结果的问题就可以使用回溯算法,这也恰恰证明了回溯算法是一种十分暴力的解决问题的方法,没有那么多拘束,同时回溯算法也可以用于解决很多的动态规划问题,毕竟是暴力搜索。

2026-03-06 21:12:43 392

原创 C语言归并排序

功能:把两个有序子数组 a[low…mid] 和 a[mid+1…high] 原地归并到临时数组 tmp,最后再拷回去。在 merge 过程中,若左边元素 > 右边元素,则左边剩余元素都与该右边元素构成逆序对,可顺手统计。链表无法随机拆分,用快慢指针找中点,然后递归归并,空间可做到 O(log n)(递归栈)。经典算法有 “旋转法” 或 “缓冲法”,但实现复杂且常数大,实际工程里仍用辅助数组。文件太大内存放不下,先分段生成有序临时文件,再做多路归并。

2025-12-14 17:34:18 241

原创 【算法】博弈问题

C语言解决博弈问题的核心是状态建模和逻辑推导简单博弈(巴什、尼姆)优先用数学公式,高效且简洁;复杂博弈(自定义规则)用动态规划或记忆化递归;关键是通过“必胜态→对手必败态”的逻辑,推导出每个状态的胜负。

2025-12-07 12:33:25 947

原创 【数据结构】二叉树相关知识点

在 C 中,我们通常使用struct// 定义二叉树节点结构int data;// 为结构体起别名,方便使用二叉树在 C 中通过struct+ 指针实现。动态内存管理(mallocfree)至关重要。遍历多用递归,但层序遍历需借助队列(可用数组或链表实现)。C 语言没有内置容器,需手动实现辅助数据结构(如队列、栈)。实际项目中要注意内存泄漏和空指针检查。

2025-11-29 20:30:20 519

原创 【算法】滑动窗口知识点

滑动窗口是一种在数组或链表上进行高效操作的算法技巧。它通过维护一个「窗口」,并在满足特定条件时移动窗口的左右边界,从而在 O (n) 或 O (n log n) 的时间复杂度内解决问题。

2025-11-23 17:46:32 595

原创 【题解】力扣链表题目总结

我们在给定的链表上使用两重循环,其中第一重循环从链表的头节点开始,枚举一个保留的节点,这是因为我们保留的是「最开始出现的节点」。由于输入的两个链表都是有序的,所以不管哪个链表是非空的,它包含的所有元素都比前面已经合并链表中的所有元素都要大。通过慢指针将链表分为两部分。由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将对应链表中的节点向后移一位。

2025-11-23 15:37:06 1040

原创 【题解】数组和链表分别实现栈与队列

int *data;// 动态数组// 总容量int top;// 栈顶指针(-1表示空)data:指向动态分配的整型数组,用于实际存储栈中元素。capacity:当前栈能容纳的最大元素个数。top:栈顶索引。初始为-1表示栈为空;当有元素入栈后,top指向最新压入的元素下标。栈的特点:后进先出(LIFO)。所有操作都在栈顶进行。int data;} Node;Node *top;// 栈顶指针Node:链表节点,包含数据data和指向下一个节点的指针next。

2025-11-16 10:40:48 1110

原创 链表反转的五种方法

的前面,以便将其放置到链表的前面,成为新的头节点。指针操作后指向上一节点而丢失指向下一节点的指针。4.遍历原链表,使用头插法新建链表,并不断移动。5.通过不断改变指针的指向将链表进行反转。的下一个节点,以防止反转时丢失链表信息。的下一个节点,以防止反转时丢失链表信息。从链表中移除,并把链表连接起来。所在节点连接起来,将当前节点。,移动到下一个待反转的节点。将新节点插入到新链表的头部。,正如迭代中声明并初始化的。为当前已反转部分的头节点,充当新链表的头节点,当。新建一个链表,并初始化。为当前待反转的节点。

2025-11-13 00:51:59 290

原创 链表数组数据读入读出文件

下面把你给出的完整程序拆成,每个只保留一种持久化方式,主函数里也只演示对应的功能,方便你按需取用。

2025-11-09 17:46:45 468

原创 【C语言】文件的相关操作

在 C 语言里,“文件”不是指源程序.c或.h那种“源代码文件”,而是指通过<stdio.h>提供的“文件流(stream)”机制、用FILE *指针来标识的一块。

2025-11-06 09:54:01 843

原创 【算法】双指针

时间:O(n) —— 每个节点最多被访问 2 次。额外空间:O(1) —— 只用到两个指针。

2025-11-02 02:45:24 586

原创 【算法】二分法

二分法是 C 语言中非常经典且高效的查找算法,适用于。,从而快速定位目标值。

2025-11-01 10:48:50 704

原创 【数据解构】链表的基本操作

链表是一种用指针连接节点的线性结构,适合频繁插入/删除但不擅长随机访问的场景。

2025-10-30 21:48:02 725

原创 【题解】移动应用开发实验室2025二面考试题解

这天,迅风在欣赏某地的美景时,灵感大作,在上午及下午写下了两篇文章,而且迅风很喜欢数文章的字数。具体地,如果迅风在下午写下的文章的字数之和他在上午写下的文章的字数之和,则认定他的灵感随着时间的推移越积越多。现在给出迅风所写的四篇文章的字数,请你回答他的灵感是否随着时间的推移越积越多。

2025-10-25 12:36:46 1006

原创 【题解】移动应用开发实验室 2025 纳新一面试题

首先要知道结构体中的对齐原则,就像一个二维数组一样(打个比方),有严格的列数限制,其大小为结构体中最大类型的字节长度,例如,char int char,它每列的长度恒为4,第一行装不下int需另起一行,第二个char去第三行,结构体大小为12,倘若变成char char int,那么两个char都可以放进第一行,int去第二行,结构体大小变成了8。qsort 是 c 语言标准库中的标准排序函数,其主要实现方式为快排,请选择一种你较为了解的排序方法,现场说说原理,并将其封装为函数,成功实现排序功能。

2025-10-25 12:34:27 1485

原创 大小端和数的高低位相关问题

如果你有具体场景(比如16位寄存器、网络字节流、STM32通信等),我可以给你更精确的判断方法。

2025-10-23 20:02:48 1071

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除