- 博客(21)
- 收藏
- 关注
原创 队列全攻略:从基础到循环与链式实现
本文档系统介绍了队列的定义及其两种主要实现方式:顺序存储与链式存储。在顺序存储中:普通顺序队列 实现简单,但存在“假满”现象和空间利用率低的问题。带调整的顺序队列 虽尝试通过元素前移缓解“假满”,但效率较低,实际应用较少。循环队列 是顺序结构中的优选方案,通过取模运算实现指针循环,空间利用率高,插入与删除操作的时间复杂度稳定为 O(1),其代价是牺牲一个存储单元以区分队列的空与满状态。在链式存储中:链式队列 具备动态扩展能力,无固定容量限制,空间使用更为灵活,基本操作的时间复杂度也为 O(1)
2025-11-24 19:34:56
438
原创 数据结构:栈详解-从原理到实现(顺序栈与链式栈)
顺序结构(基于数组)和链式结构(基于链表)。顺序栈结构简洁,易于理解,在内存分配固定且大小已知的情况下,具有高效的访问速度。然而,它也存在容量限制,需要预先定义MAXSIZE,容量不足时需要动态扩容,增加了实现的复杂度。链式栈则以其动态可变的特性而著称。它不受固定大小的限制,可以随着元素的增减自动调整,理论上可以存储无限个元素(受限于系统内存)。通过使用哨兵节点,我们进一步优化了链式栈的入栈和出栈操作,使其逻辑更加清晰,边界处理也更加优雅。选择哪种结构?
2025-11-19 23:22:36
955
原创 数据结构:双向链表-从原理到实战完整指南
本文介绍了双向链表的基本概念与实现方法。通过C语言代码展示了双向链表的结构定义、初始化、遍历以及插入删除等核心操作,并与单链表进行了性能对比。双向链表通过增加前驱指针,使得查找前驱、删除节点等操作的时间复杂度从O(n)降至O(1),但需要额外33%的存储空间。文章还详细对比了两种链表在节点结构、遍历方向、删除效率等方面的差异,说明双向链表更适合需要频繁双向访问的场景,如浏览器历史记录等,为数据结构的选择提供了实用参考。
2025-11-02 23:40:23
936
2
原创 数据结构基石:单链表的全面实现、操作详解与顺序表对比
本文摘要:深入探讨链式存储结构的核心原理与实现。对比顺序表,链表通过节点指针实现非连续存储,具有动态内存分配和高效插入/删除(O(1))的优势。详细解析了链表节点结构、头插法/尾插法的实现逻辑,以及指定位置插入、删除节点等关键操作。通过代码示例展示了链表基本操作的实现过程,包括初始化、遍历、长度计算和内存释放。虽然链表随机访问效率(O(n))较低且空间开销较大,但其灵活的内存管理和高效的结构调整能力,使其成为处理动态数据的重要数据结构基础,为学习更复杂链式结构奠定基础。
2025-10-17 23:05:14
797
原创 数据结构实战:顺序表全解析 - 从零实现到性能分析
/宏定义与类型定义//定义 int 的别名为 ElemType (方便后续修改数据类型)//结构体定义(SeqList)//声明了一个长度为MAXSIZE(100)的整数类型的数组int length;//用于记录当前顺序表中实际存储了多少个元素}SeqList;基于数组 (Array-based)
2025-10-12 23:37:55
1161
原创 时间复杂度与空间复杂度系统梳理与实战
本文系统介绍了算法效率评估的两个核心指标:时间复杂度和空间复杂度。时间复杂度衡量算法执行时间随输入规模n的增长趋势,分为最好、最坏和平均情况,常见类型包括常数O(1)、线性O(n)、平方O(n²)、立方O(n³)等。空间复杂度评估算法内存占用随n的增长,主要考虑固定空间和可变空间。文章通过代码示例详细演示了各种时间复杂度的计算方法,并强调实际应用中需要在时间和空间效率之间进行权衡。最终指出,优秀的算法需要综合考虑正确性、时间效率、空间效率及应用场景需求。
2025-09-24 22:12:30
984
原创 逻辑回归(四):从原理到实战-训练,评估与应用指南
本文介绍了机器学习模型训练与评估的核心流程。首先通过逻辑回归模型构建预测模型,详细解析了模型初始化、训练和预测的代码实现。其次重点讲解了模型评估指标体系,包括混淆矩阵(展示TP/TN/FP/FN)和分类报告(包含精确率、召回率、F1值等指标)。特别指出当出现"完美"评估结果(如准确率1.0)时需保持警惕,可能源于数据泄露或数据集过于简化。最后强调评估指标需结合业务场景选择,为后续复杂模型学习奠定基础。全文采用"代码实现+理论解析"的双线结构,既展示具体操作又深入阐释评
2025-09-23 21:49:46
1143
4
原创 Git 命令行教程:配置 SSH 密钥高效克隆与管理项目
本文提供Git配置与克隆的完整指南,涵盖SSH密钥生成、GitHub公钥配置和项目克隆操作。重点讲解SSH密钥的生成方法(使用ssh-keygen命令)、公钥上传GitHub流程,以及HTTPS/SSH两种克隆方式的区别。特别说明首次SSH连接时的主机验证机制,并给出权限设置、多密钥管理等实用建议。通过SSH方式连接可避免重复认证,提升代码管理效率,适合需要频繁操作仓库的开发者。文中包含详细命令行操作示例和可视化配置截图,帮助用户快速完成环境搭建。
2025-09-17 20:29:07
1347
原创 逻辑回归(三):从原理到实战-训练,评估与应用指南
本文深入探讨鸢尾花分类项目中的数据可视化核心步骤。超越基础的df.describe(),我们通过绘制特征分布直方图、相关性热力图和散点图矩阵,直观评估数据质量、特征效用与模型选择依据。文章详解代码实现与图表解读,旨在培养你的数据直觉,明白为何可视化是模型成功不可或缺的一环。这是一份从实践出发的“避坑”指南,助你为机器学习打下坚实基础。
2025-09-14 19:30:00
1429
原创 逻辑回归(二):从原理到实战 - 训练、评估与应用指南
从数据异常到预测模型:手把手教你搞定鸢尾花分类项目!想实战机器学习却不知从何下手? 本文以经典的鸢尾花数据集为例,带你跨出最关键的第一步!你将会学到:如何快速“读懂”你的数据,一眼发现隐藏的异常值和陷阱?数据预处理的完整流水线:从清洗缺失值、编码文本标签,到标准化特征。 我们不只讲理论,更提供每一步的可运行代码和结果分析,让你真正理解每个步骤背后的意义,轻松复现到自己的项目中。完美的数据预处理是模型成功的基石。 本文将为你打好这个基础,下一篇我们将一起训练多个模型并科学评估它们的表现!
2025-09-13 15:54:19
1301
原创 Conda 环境管理与 PyCharm 集成实战:从创建到包安装的全方位指南
Conda 有一个官方的默认仓库(Anaconda 仓库),其中包含了大量常用的包。
2025-09-10 23:08:12
1412
原创 【机器学习十大算法】逻辑回归(一)
本期文章深入浅出地讲解了逻辑回归的核心思想。虽然名字中带有“回归”,但它实质上是一个二分类算法,用于预测样本属于某个类别(如“是/否”)的概率,而非连续的数值。线性计算:像线性回归一样,计算特征的加权和(z概率映射:通过神奇的Sigmoid 函数,将任意范围的z值平滑地、非线性地压缩到(0, 1)区间,将其转化为一个概率值。这是逻辑回归得名的原因,也是它能完成分类任务的关键。决策分类:设定一个阈值(通常为0.5),将得到的概率转化为最终的类别标签。为了找到最佳的模型参数,文章引入了似然函数的概念。
2025-09-09 22:48:15
1325
原创 Visual Studio 2022 安装失败?可能是路径长度惹的祸!
摘要: 从VS2019升级到VS2022时,因安装路径过长(超50字符)导致报错且无明确提示。尝试多种清理方法无效,最终缩短路径解决。原因是复杂安装过程易超出系统路径处理极限。关键教训:首次安装必须选简短路径(如C:\VS2022\),安装后无法修改路径,失败时优先检查路径长度并使用官方卸载工具清理。提前规划路径可避免重复安装问题。
2025-09-06 23:39:07
1107
原创 【机器学习十大算法】线性回归(二)
本文介绍了梯度下降算法在机器学习优化中的应用。通过"下山"的比喻,解释了梯度下降的核心思想:通过计算损失函数的梯度(最陡下降方向),以适当步长(学习率)迭代更新模型参数,逐步逼近最优解。文章分析了三种梯度下降方法:批量梯度下降(计算精确但慢)、随机梯度下降(快速但不稳定)和小批量梯度下降(平衡效率与稳定性,最常用)。同时指出该方法可能陷入局部最优的局限性。内容注重直观理解,避开了复杂数学推导,适合初学者建立基本认知。
2025-09-05 21:22:30
1049
原创 解决冷门数据集下载难题:QIN LUNG CT的qBittorrent优化方案
本文介绍获取QINLUNGCT肺癌CT影像数据集的详细方法及下载优化技巧。数据集可通过BitTorrent客户端下载,推荐使用qBittorrent。针对学术资源下载慢的问题,提供两种优化方案:一是调整qBittorrent设置,包括取消限速、增加连接数等;二是更新Tracker列表,通过添加公共Tracker服务器来提高下载速度。这些方法能有效改善冷门种子的下载体验,帮助研究者更高效地获取医学影像数据。
2025-09-04 19:15:00
1304
原创 【机器学习十大算法】线性回归(一)
本文以侦探破案为类比,通俗易懂地解释了线性回归的核心概念和误差项假设。文章首先将线性回归比作侦探的"经验法则",通过自变量(如房间数量、天气因素)预测目标变量(物品丢失数量),并引入误差项代表模型无法解释的随机因素。重点剖析了误差项的四个关键假设:独立性(案件间互不影响)、同分布(误差波动程度相似)、零均值(无系统性偏差)和高斯分布(误差呈钟形分布)。这些假设保证了模型的无偏性、最优性和统计推断的有效性。文章最后指出实际应用中这些假设可能不完美满足,并简要介绍了相应的解决方法。全文在严谨
2025-09-03 10:34:29
1011
原创 MobX Store 与小程序页面:实现数据与行为的无缝集成
本期介绍了如何将MobX store绑定到小程序页面生命周期中,实现全局数据管理。主要步骤包括:1)在页面.js文件中导入createStoreBindings和store实例;2)在onLoad生命周期中调用createStoreBindings,配置需要绑定的数据字段(fields)和方法(actions);3)在onUnload中销毁绑定防止内存泄漏。通过这种方式,页面可以直接访问store中的数据和方法,并实现响应式更新。
2025-09-02 21:39:10
428
原创 解锁小程序全局状态管理:MobX 状态共享实战指南
我们定义了一个名为 updateNum1 的 MobX Action。MobX 会拦截这个调用,并在一个名为 updateNum1 的事务中执行。在事务内部,this.numA 的值会增加 step。MobX 会追踪这个对 this.numA 的修改。一旦 updateNum1 函数执行完毕,MobX 就会通知所有监听 this.numA 变化的地方(例如 UI 组件),让它们根据新的 numA 值进行更新。
2025-09-01 22:00:54
893
原创 解决 Docker Compose 启动失败:快速配置 Docker 国内镜像源
更换国内镜像源提速 在使用 Docker 进行项目部署时,`docker compose up -d` 命令是常用的启动方式。这通常意味着 Docker 在从 Docker Hub 下载镜像时发生了网络超时。本文将介绍如何通过更换国内镜像源来解决这个问题,提升开发效率。docker compose up -d网络超时的问题。在docker中调整下载镜像源地址。
2025-08-31 18:12:22
1694
原创 告别回调地狱!微信小程序API Promise化实战指南 (@miniprogram-api-promise)
本文介绍了如何通过npm包实现API的Promise化。API Promise化是指将基于回调函数的异步API改造为基于Promise的形式,以提升代码可读性和避免回调地狱。具体步骤包括:1)安装miniprogram-api-promise包;2)在app.js中导入promisifyAll方法;3)将wx对象方法转换为Promise形式。这种改造使异步操作更清晰易管理,只需获取"结果凭证"即可等待操作完成。实现后可直接调用Promise化的API方法。
2025-08-24 18:11:43
470
原创 【计算机视觉 在CVAT中导出YOLO格式数据文件,详细解析文件内容,小白新手必看!】
YOLO格式数据导出与文件解析:CVAT导出的YOLO格式数据包含obj_train_data文件夹(存储顺序命名的视频帧图像)。配套文件包括:1)YOLO标注文件(与图像同名,含类别ID和边界框信息);2)train.txt(训练图像路径列表);3)obj.names(类别名称列表,行号对应类别ID);4)obj.data(配置文件,定义类别数、训练集路径等关键参数)。这些文件共同构成YOLO模型训练所需的标准数据集结构,其中命名规则和路径配置对训练过程至关重要。
2025-07-17 23:08:39
587
Java 课程设计利器:移动电源租赁系统 (附源码+超详细报告)
2025-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅