AI及算法
文章平均质量分 84
fpcc
行之苟有恒,久久自芬芳!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AI和大模型——AI大模型应用的整体框架
本文系统梳理了AI大模型应用开发的技术演进与框架体系。从简单的提示词工程起步,发展到包含上下文管理、工具调用、安全机制等功能的完整Agent系统,再通过任务编排实现复杂任务处理。文章重点解析了Agent框架的核心构成(如ReAct循环、RAG技术)和新兴的Harness Engineering(即Agent去除大模型后的控制部分)。当前主流开发框架已原生支持这些功能,开发者更需关注需求分析、任务拆解和规则设计。建议结合具体技术文章对比学习,全面掌握AI应用开发从底层技术到整体框架的知识体系。原创 2026-06-27 08:37:23 · 127 阅读 · 0 评论 -
AI和大模型——loop engineering
本文介绍了AI编程领域的新概念"循环工程"(loop engineering),它标志着AI编程从辅助向自主演进的关键转折。循环工程通过构建自动化工作系统,使开发者角色转变为代码架构管理者。文章分析了其核心组件:自动化处理、工作树隔离、技能库、插件连接器、多Agent协作和记忆机制。尽管循环工程能显著提升效率,但也存在开发者边缘化、任务偏离、代码质量风险和高成本等挑战。作者指出,AI编程范式仍在快速演进,开发者应保持开放思维,关注技术思想而非具体概念,以应对未来的技术变革。原创 2026-06-21 07:33:44 · 181 阅读 · 0 评论 -
AI和大模型——优化器
本文系统介绍了大模型训练中的优化器技术。首先解析了优化器的核心机制:动量(一阶矩)减少梯度震荡,自适应学习率(二阶矩)为不同参数设置个性化更新步长,权重衰减防止过拟合。重点分析了Adam和AdamW优化器,它们融合动量和自适应学习率,成为主流选择,但在训练后期可能需切换至SGD进行精细调优。文章还对比了SGD的随机梯度下降特性及优缺点,并概述了二阶方法、符号搜索、内存高效和基于矩阵的新型优化器。整体呈现了大模型优化技术的发展脉络和关键权衡,为理解这一复杂领域提供了清晰框架。原创 2026-06-20 07:42:52 · 160 阅读 · 0 评论 -
AI和大模型——上下文工程
本文探讨了上下文工程(Context Engineering)在大模型应用中的关键作用。上下文指执行任务的所有环境条件,而上下文窗口限制要求动态管理相关信息以避免腐化。文章区分了静态上下文(系统提示、知识库等)和动态上下文(实时交互处理),后者通过数据获取、压缩和打包三步优化输入。上下文工程与提示词工程紧密相关但可独立实现,能显著提升AI的准确性、智能性和可靠性。该技术为不同应用场景提供了专业化的解决方案。原创 2026-06-19 09:16:08 · 204 阅读 · 0 评论 -
AI和大模型——提示词工程
本文探讨了提示词(Prompt)在大模型交互中的核心作用及其优化方法。提示词是与AI交互的指令,条件越具体,输出结果越准确。提示词工程旨在优化输入信息的设计,使其清晰、具体且可执行,以提高大模型响应的精准度。随着AI发展,提示词工程正朝着集成化、后台化演进,逐渐成为幕后技术,通过工具封装提升交互效率。尽管用户对其感知有限,但其重要性日益凸显,成为优化大模型应用的关键环节。未来,提示词工程可能实现自动化交互和个性化处理,进一步推动AI普及。原创 2026-06-13 08:46:32 · 202 阅读 · 0 评论 -
AI和大模型——数据预处理
本文探讨了AI大模型数据预处理的关键要点。文章指出,大模型应用的核心在于高质量数据,而非底层技术复杂度。数据预处理需要根据数据类型采用针对性方法,包括序列、文本、表格、音频、图像等10类数据的不同处理技术。作者强调应分类处理训练集、验证集和测试集以防止数据泄露,并推荐使用Pandas、Matplotlib等工具提升效率。最后提出要灵活运用预处理方法,避免僵化套用,才能真正发挥大模型的潜力。全文着重强调数据质量对大模型效果的决定性作用,为实践者提供了系统化的数据处理思路。原创 2026-06-06 09:41:47 · 198 阅读 · 0 评论 -
AI和大模型——激活函数
本文介绍了神经网络中激活函数的概念、作用及常见类型。激活函数通过引入非线性、限制输出范围和便于梯度处理,对神经网络性能至关重要。常见的激活函数包括Sigmoid(适合二分类但易梯度消失)、ReLU及其变体(计算简单但可能神经元死亡)、GeLU(解决神经元死亡问题)和Softmax(多分类任务)。选择激活函数需考虑数据特点(如正负值、对称性)和训练问题(如神经元死亡)。大模型常用GeLU和SwiGLU。理解激活函数原理有助于优化神经网络应用。原创 2026-05-30 08:31:42 · 182 阅读 · 0 评论 -
AI和大模型——梯度消失和梯度爆炸
本文探讨了深度学习中梯度消失和梯度爆炸两大核心问题。梯度消失指反向传播时梯度趋近于零,导致权重无法更新;梯度爆炸则是梯度无限增大,造成网络震荡。两者都会阻碍神经网络的有效学习。文章分析了问题成因:梯度消失多由激活函数选择不当或网络过深导致,梯度爆炸常因权重初始值过大或RNN结构引起。针对这些问题,提出了多种解决方案:更换激活函数、权重初始化、归一化技术、残差连接等通用方法,以及梯度裁剪、正则化等特定措施。最后强调理解基本原理的重要性,建议工程师根据实际需求灵活应用这些技术。原创 2026-05-23 07:02:49 · 323 阅读 · 0 评论 -
AI和大模型——梯度和梯度下降
本文介绍了梯度下降在大模型训练中的数学原理与应用。首先回顾了导数和偏导数的概念,说明如何通过调整参数最小化损失函数。接着从几何角度分析梯度方向代表函数变化最快的方向,梯度下降即沿负梯度方向小步更新参数以寻找极小值。文章详细讲解了梯度下降的三种类型(批量、随机、小批量)及常见优化器(Momentum、Adam等)的作用,指出学习率选择的重要性。最后强调数学基础对理解大模型底层机制的关键作用,梯度下降虽可能陷入局部最优等问题,但仍是训练神经网络的核心方法。原创 2026-05-16 08:24:38 · 396 阅读 · 0 评论 -
AI和大模型——Agent和函数调用
本文探讨了Agent与普通函数调用的异同。Agent作为智能代理工具,通过大模型动态调用函数,能自动推理参数和处理异常,但效率较低且难以调试;普通函数调用则固定明确,易于跟踪但灵活性不足。两者本质相同,区别在于调用方式:Agent是智能动态代理,普通函数是静态代码执行。理解其定位差异有助于正确运用这些技术,避免被表象迷惑。关键在于把握技术本质,而非被表面差异误导。原创 2026-05-13 10:43:52 · 292 阅读 · 0 评论 -
AI和大模型——拟合
本文系统阐述了机器学习中的拟合概念及其常见问题。拟合指模型通过学习数据规律实现预测或映射的能力,其质量直接影响模型泛化性能。文章重点分析了欠拟合(模型未能充分学习数据规律)和过拟合(模型过度学习噪声数据)两种现象,并分别提出解决方案:欠拟合可通过增强模型复杂度、增加训练数据等方法改善;过拟合则需采用正则化、简化模型、Dropout等技术控制。理想的"合适拟合"应达到训练集与测试集性能的平衡,表现为验证误差最低且与训练误差相近的状态。文章强调拟合是一个动态优化过程,需要根据具体场景调整模型原创 2026-05-11 07:58:33 · 365 阅读 · 0 评论 -
AI和大模型——上下文腐坏
随着AI技术的发展,提示词的重要性逐渐被更全面的"上下文"概念取代。上下文包括提示词和相关资料,理论上越详细越好,但受限于模型处理能力,过长会导致"上下文腐坏"——关键信息丢失。应对方法包括:设计固定工作流、客户端主动处理对话、拆分复杂任务、使用外部数据库等。虽然这些可能是过渡技术,但在当前阶段仍需掌握。技术发展迅速,但实用主义学习仍是必要的。原创 2026-05-05 08:27:55 · 274 阅读 · 0 评论 -
AI和大模型——Fine-tuning
本文系统介绍了大模型微调(Fine-tuning)的概念、目的及方法。微调是在预训练大模型基础上,通过特定领域数据对参数进行调整,使其适应具体应用场景。文章分析了微调的必要性,指出其能显著降低中小企业的开发成本。微调可分为全参数微调(FFT)和高效参数微调(PEFT)等类型,常用技术包括LoRA、QLoRA、适配器调整等工具。随着技术发展,微调正朝着自动化、持续化和多目标化方向演进,核心目标是以更低成本实现更高效的模型优化。原创 2026-05-02 09:35:09 · 331 阅读 · 0 评论 -
AI和大模型——AI的开发者技能
本文探讨了开发人员如何转型进入AI行业,指出当前AI应用开发的主要技术要求和行业壁垒。文章强调,AI行业对学历、技术能力要求较高,核心技能包括RAG系统开发、本地小模型部署优化、大模型运维等。虽然转型难度大,但仍存在时间窗口期。作者提醒开发者不要轻信网络误导,AI行业最终可能成为少数人的领域,但高薪资仍吸引人才涌入。建议有意转型者直接研究招聘需求,针对性地提升技能。原创 2026-05-01 09:02:33 · 383 阅读 · 0 评论 -
AI和大模型——harness编程
摘要:Harness编程是围绕AI大模型构建的外部控制系统,将模型与管理系统结合形成智能体(Agent)。其核心模块包括提示约束、状态管理、工具集成、任务编排和验证观测,解决大模型无状态、权限控制等局限。特点在于架构约束、闭环反馈和熵管理,通过明确规则提升AI输出准确性。典型应用包括LangChain、Claude等系统,将AI从基础模型升级为工程化解决方案,提高可靠性并降低幻觉风险。Harness编程作为连接大模型与应用的关键纽带,正推动AI技术向更广泛领域落地。(149字)原创 2026-04-30 10:02:33 · 473 阅读 · 0 评论 -
AI和大模型——代价函数和损失函数
本文介绍了机器学习中的代价函数和损失函数概念。代价函数用于评估整个训练集的表现,通过最小化目标函数来优化模型参数;损失函数则衡量单个样本预测结果与真实值的差异。二者虽有区别但常被混用,目标函数则更宽泛。文章还列举了常见的回归损失(如MAE、MSE)和分类损失(如交叉熵),并指出不同场景应选用合适的损失函数。理解这些基础概念对深度学习模型的优化至关重要,后续将深入探讨具体算法实现。原创 2026-04-25 08:52:04 · 362 阅读 · 0 评论 -
AI和大模型——RAG基础
《RAG技术框架的发展与应用解析》摘要: RAG(检索增强生成)是由Facebook AI团队提出的结合信息检索与大模型生成能力的技术框架,旨在提升回答准确性并减少幻觉问题。其发展经历了传统RAG、高级RAG、模块化RAG、多模态RAG、Agentic RAG和GraphRAG六个阶段。核心组件包括嵌入模型、向量数据库、分块策略及重排序技术,工作流程涵盖索引检索、提示增强和结果生成三大环节。关键技术涉及Bi-Encoder/Cross-Encoder架构、重排序算法和BM25检索等。实际应用中需灵活组合索引原创 2026-04-24 07:59:13 · 333 阅读 · 0 评论 -
AI和大模型——如何实现一个Agent
本文探讨了AI时代普通人如何通过创建Agent融入AI应用。文章首先指出单纯使用提示词并不等同于掌握AI,建议从构建Agent入手。随后介绍了四种常见Agent创建模式(反思、工具调用、计划、多Agent协作)和七步创建流程(明确目标、架构设计、功能模块、工作流建模、Prompt编排、安全验证、管理维护)。文章还分析了三种创建方法:从头开发(灵活但复杂)、无代码架构(便捷但受限)和工具实现(最简单)。最后强调AI发展迅速,建议拥抱技术但不被其束缚,保持鉴别能力。全文为初学者提供了清晰的Agent构建路径和实原创 2026-04-19 10:13:39 · 400 阅读 · 0 评论 -
信号处理与AI中的卷积的关系
本文探讨了卷积在工程应用和深度学习中的异同。工程中的卷积严格遵循数学定义,包含反转、平移等步骤,用于信号处理和滤波,其卷积核是预设且具有物理意义的。而深度学习中的卷积实为互相关运算,无需反转,卷积核通过训练得到,主要用于特征提取。两者在滑动窗口、参数复用等操作上相似,但在核来源、用途、维度和操作方式上存在差异。工程代码通过对称数组隐式实现反转效果,体现了实际应用中对卷积原理的灵活运用。理解这两种卷积的共性与特性,有助于在不同场景中正确应用这一核心概念。原创 2026-04-15 11:06:16 · 232 阅读 · 1 评论 -
数据处理的sample-major和 scanline-major模式
本文探讨了图像处理中两种数据存储模式:Sample-major(像素优先)和Scanline-major(行优先)。Sample-major以像素为中心交错存储,适合GPU并行计算;Scanline-major以扫描线为中心连续存储,利于缓存优化。通过公式和示例对比了二者在内存中的不同组织方式,指出Scanline-major适合视频编码等行操作,而Sample-major更适合实时渲染等随机访问场景。文章强调理解这两种模式对匹配代码与算法逻辑的重要性,并提醒开发者需根据计算需求(缓存命中率或并行计算)选择原创 2026-04-14 10:33:44 · 324 阅读 · 0 评论 -
AI和大模型——前向传播和反向传播
本文介绍了神经网络中的前向传播与反向传播机制。前向传播是数据从输入层到输出层的线性加权和非线性激活处理过程,完成预测推理;反向传播则通过计算损失函数梯度,利用链式法则逐层更新权重和偏置参数,实现网络优化。文章分析了反向传播的四个步骤:计算损失、误差反向传递、梯度计算和参数更新,并指出其存在梯度消失/爆炸等问题。最后强调实际开发中框架已实现自动微分功能,开发者无需深入数学推导即可应用这些原理。全文用通俗语言阐述了神经网络训练的核心机制。原创 2026-04-11 09:21:30 · 249 阅读 · 0 评论 -
AI应用—AI调试实践
文章摘要: 在维护多年未更新的算法数据处理代码时遇到困难,为解决该问题引入了GPT5.4辅助调试。AI分析发现程序在调用MhdSequenceWriter::addImage函数时崩溃,定位到"std::ofstream &refMetaFos = m_mhdFile"代码行存在问题。通过gdb调试工具获取了详细的调用栈信息,显示崩溃发生在TBB线程调度过程中。该问题涉及多线程环境下的文件流操作异常,需要进一步检查文件句柄状态和线程安全性。(149字)原创 2026-04-08 10:30:21 · 903 阅读 · 0 评论 -
AI和大模型——神经网络
本文用通俗易懂的方式介绍了AI底层神经网络的基本原理。文章首先解释神经网络模拟人脑神经元的结构,由多层节点组成,随着技术进步节点数量和层数大幅增加。然后列举了8种常见神经网络类型及其应用场景,如前馈网络、卷积网络、循环网络等。接着说明神经网络的基本工作原理:数据前向传播、损失函数计算、反向传播优化参数的过程,并通过数字识别和水流量调节的类比帮助理解。最后指出现代大模型本质是通过Transformer架构在参数、数据和算力三个维度上的"摊大饼"。本文旨在为AI应用开发者提供对底层技术的快速原创 2026-04-06 08:34:20 · 319 阅读 · 0 评论 -
AI和大模型——模型蒸馏
摘要: 模型蒸馏(知识蒸馏)是一种通过复杂"教师模型"训练轻量"学生模型"的压缩技术,旨在降低大模型高昂的训练成本(如Anthropic预计2025年训练成本或达百亿美元)。其核心原理是利用教师模型生成的"软标签"进行知识迁移,通过调节温度参数、优化损失函数(如结合蒸馏损失与监督损失)提升学生模型性能。应用场景包括移动设备、边缘计算等资源受限环境,能显著降低计算、存储和通信成本。与模型微调不同,蒸馏旨在生成新模型而非优化原模型,未来随着技术进步(如原创 2026-04-04 07:21:07 · 373 阅读 · 1 评论 -
AI和大模型——幻觉
AI幻觉是指大模型生成与事实不符或逻辑混乱的内容,其核心原因是基于概率模仿而非真正思考。主要成因包括数据噪声、知识不完备、缺乏感知和机械模仿。应对方法包括结果验证、工具集成、优化提问方式及模型改进。AI幻觉既是挑战也可能激发创造力,未来AI或将从工具演变为人类思维的延伸。原创 2026-03-28 09:55:17 · 189 阅读 · 0 评论 -
AI应用—Agent Teams和Agent Swarm
本文探讨了AI领域从单Agent向多Agent协作发展的趋势,类比计算机从单机到分布式系统的演进。文章重点分析了两种多Agent模式:Agent Teams采用主Agent管理固定子Agent的初级协作模式,适合结构清晰的小规模任务;Agent Swarm则通过动态任务分解和并行处理实现更灵活的分布式协作,适合复杂开放的大规模任务。作者指出,随着AI应用场景日益复杂,分布式AI技术将催生新领域,开发者需要积极拥抱这一变革。两种模式各具优势,其发展路径与计算机网络演进历程高度相似。原创 2026-03-21 09:18:07 · 525 阅读 · 1 评论 -
AI应用——LoRa和QLoRA
本文探讨了大模型微调中的参数优化技术。针对全参数微调成本高昂的问题,介绍了两种高效微调方法:LoRa通过低秩矩阵分解减少参数调整量,使训练时间从月级降至天级,效果接近全量微调;QLoRA则结合量化技术,将参数压缩至4-bit以节省显存,适用于显存不足的大模型场景。分析表明,LoRa适合消费级显卡的中小场景,QLoRA则在大模型训练中优势显著。这两种技术为不同规模的企业提供了灵活选择,推动了大模型技术的普惠化发展。原创 2026-03-14 09:40:50 · 357 阅读 · 0 评论 -
IVUS中FIR滤波应
本文介绍了血管内超声(IVUS)技术及其信号处理中FIR滤波器的应用。IVUS通过微型超声探头获取血管横截面图像,用于检测血栓、斑块等病变。为提高图像质量,需使用FIR滤波器进行带通滤波,消除噪音和低频漂移。文章详细阐述了FIR滤波器设计流程,包括参数确定、阶数计算和时延补偿,并提供了Python代码示例。FIR滤波能有效提升信噪比和轴向分辨率,为后续图像处理奠定基础。实际应用中需根据经验调整参数,不可直接套用理论值。原创 2026-03-11 14:14:01 · 399 阅读 · 1 评论 -
FIR滤波分析
本文系统介绍了信号处理中的波描述和滤波技术。首先通过单位圆旋转和三维螺旋曲线形象解释了正弦波、余弦波的数学本质及其周期性特征。其次详细阐述了滤波的基本概念,包括低通、高通、带通、带阻四种主要类型及其应用场景,并区分了模拟滤波和数字滤波。重点分析了FIR(有限脉冲响应)和IIR(无限脉冲响应)两种数字滤波方式的特点:FIR具有稳定性好、线性相位等优点但需要高阶实现,IIR计算效率高但存在稳定性风险。最后给出了FIR滤波的核心卷积公式。文章为信号处理的入门性介绍,未深入技术细节。原创 2026-03-09 12:00:22 · 330 阅读 · 0 评论 -
AI和大模型——Transformer
本文介绍了Transformer模型的核心原理与架构。Transformer通过注意力机制模拟人类理解语言的上下文关联方式,突破了传统RNN的局限性。其核心是多头自注意力机制,能并行处理长距离依赖关系。架构分为编码器和解码器:编码器通过位置编码和自注意力提取语义特征;解码器则结合掩码机制自回归生成输出。文章强调Transformer的创新在于将复杂神经网络简化为注意力机制,为大语言模型奠定基础。该机制支持GPU并行计算,具备强大扩展性,是ChatGPT等AI突破的关键技术。文末建议读者参考原始论文深入理解这原创 2026-03-08 11:57:07 · 407 阅读 · 0 评论 -
AI应用—Agent、Agent Skills、MCP和Workflow及Lanchain分析
本文解析了AI领域常见术语Agent、MCP、Skills、LangChain和Workflow的概念及相互关系。Agent作为用户与大模型的中介,负责任务调度和结果反馈;MCP是标准化知识获取的协议;Skills则是提升大模型效率的预制工具集。文章指出这些技术本质上都是为了降低AI使用门槛,通过解耦固定流程与动态计算来优化资源消耗。从用户视角看,Agent屏蔽了大模型的复杂性;从开发者角度看,LangChain和Workflow提供了不同抽象层级的开发方式。最终这些技术共同推动AI普及,实现成本分摊和效率原创 2026-02-28 10:12:35 · 699 阅读 · 0 评论 -
AI和大模型之一介绍
**摘要:**人工智能(AI)技术从机器学习发展到深度学习,特别是大语言模型(LLM)的出现推动了AI的普及。AI模型分为机器学习、深度学习和大模型三类,其中LLM基于Transformer架构,擅长处理自然语言。常见的大模型包括GPT、Claude、Gemini和LLaMA等。AI应用广泛,尤其在AIGC(人工智能生成内容)领域,涵盖文本、图片、音频和视频生成。智能体(Agent)进一步简化了AI应用。AI已成为未来技术革命的关键,推动各行业创新发展。原创 2026-02-17 21:17:02 · 602 阅读 · 0 评论 -
AI应用—CUDA在AI中的应用
本文介绍了CUDA与AI的密切关系。CUDA是NVIDIA开发的并行计算框架,能充分发挥显卡性能,已成为AI底层技术的关键支撑。CUDA主要应用于科学计算、图像处理、金融分析等需要大规模并行计算的领域,这些特点恰好满足AI对海量数据和高性能计算的需求。在AI领域,CUDA提供强大的算力支持、模型训练和推理优化,并构建了完善的开发生态。文章指出,在当前AI仍依赖算力堆叠的发展阶段,CUDA与AI形成了相互促进的关系,使NVIDIA在行业中占据优势地位。原创 2025-08-01 07:54:31 · 1136 阅读 · 1 评论 -
AI应用—C++在AI中的应用
C++在AI领域扮演着重要角色,尤其在基础建设和性能优化方面。虽然Python是AI开发的主流语言,但C++在深度学习框架(如TensorFlow、PyTorch)、底层算法加速、嵌入式AI及硬件优化等场景中具有不可替代的优势。其应用涵盖AI核心框架开发、海量数据处理、并行计算支持等多个层次。尽管在高层开发中Python更流行,但C++凭借其高效性能,在AI的底层实现和优化中仍发挥着关键作用。原创 2025-07-28 17:40:26 · 730 阅读 · 5 评论 -
AI应用—LangChain 和 LangGraph介绍
本文探讨了当前AI技术的发展现状与应用局限,指出虽然AI在自动驾驶、生成式内容等方面存在技术瓶颈,但在图像识别、工业应用等固定场景中已显现实用价值。文章重点介绍了LangChain和LangGraph两大AI应用框架:前者采用线性工作流适合简单任务,后者基于循环图模型能处理复杂交互场景。技术层面详细对比了两者在执行方式、状态管理和条件逻辑上的差异,并提供了Python环境配置和C++调用示例。最后强调AI技术虽存在泡沫,但仍需理性看待其发展潜力,建议开发者主动学习适应新技术趋势。全文客观分析了AI技术的优缺原创 2025-07-13 08:52:09 · 712 阅读 · 0 评论 -
工具的应用——安装copilot
copilot是一个AI辅助编程的助手,作为需要拥抱AI的程序员可以从此尝试进入,至于好与不好,应当是小马过河,各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题,然后把它总结下,供人借鉴。工作的环境为ubuntu22.04,主要需要适配Qtcreator和VsCode。如果使用更高的版本安装会更简单,具体细节请参看下面的表述。综上所述,版本的问题始终是一个非常麻烦的问题。此处如果是高版本的Ubuntu(同事是较新的Debian),安装就简单了许多。原创 2025-01-26 10:43:11 · 2362 阅读 · 4 评论 -
IQ调制技术
小白入门篇,有错误和不妥欢迎指出,这一系列的重点不是怎么搞这些算法,重点是先知道这些算法是搞啥的或者说弄明白这些算法是什么,怎么来的,有哪些物理意义和实际应用。具体的算法可能会在后期实际用到再进行具体的分析说明。原创 2024-01-11 10:22:59 · 1412 阅读 · 2 评论 -
合成孔径技术
合成孔径技术现在也开始从二维向三维扩展。同样,在不同的行业的应用也快速进行中,特别是随着在普通的民用行业的使用,使得合成孔径技术愈发为更多的普通技术人员所熟悉和应用。这就如任何一项科学技术总是从高大上慢慢走向大众化,最后成为一项重要但很普通的应用技术。原创 2024-01-07 16:59:29 · 2697 阅读 · 5 评论 -
算法和数据结构之快速排序
一、排序接着造火箭,面试对排序一般是不会放过的,而在所有的排序中,快排勿庸置疑是问的最多的。而在实际应用中,这个排序确实也是在实际工程中用的最多的之一。快速排序是什么呢?快速排序就是通过排序数据进行比较和交换位置来实现数据排序的目的。快速排序分为经典快速排序和随机快速排序。前者是指定固定的基准数据(最左或者最右即第一个或最后一个),随机快速排序是随机指定任一一个。快速排序的时间复杂度为O(nlogn),最坏情况下,即分治后一侧为1,另外一侧为n-1,时间复杂度为O(n^2),空间复杂度为O(nlogn)原创 2020-07-18 23:43:19 · 1005 阅读 · 0 评论 -
算法和数据结构之链表
一、基础知识继续造火箭。什么是链表?顾名思义,链表就是链状的数据结构,可以想象成在日常生活中,一条铁链一环扣一环的链结在一起。每个环上存储了相关的数据。在数据结构中,组成链表的节点通常有两个以上的域,一个域用来存储数据,其它的域用来存储指向其它节点的方式(指针等)。这样通过每个节点的指向其它节点的方式形成一条数据链。链表可以有头节点,也可以没有头节点,但一定会有尾节点(C/C++中,指向NULL的指针)。链表分为单向链表、双向链表和循环链表三类。这里以单向链表为例,双向链表和循环链表类似,只是多了一些原创 2020-06-06 10:05:57 · 549 阅读 · 0 评论
分享