news 2026/7/14 21:57:09

计算机常用算法在工程中的全面应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机常用算法在工程中的全面应用

计算机常用算法是解决各类工程问题的核心工具,按应用领域+核心思想可分为10大核心类别,覆盖基础数据处理、工程开发、机器学习/计算机视觉、后端服务、智能系统等所有常见场景,结合你熟悉的C++开发、OpenCV、智驾感知/后处理背景,每个算法都会标注核心思想+适用场景+贴合你的实际开发例子,兼顾完备性实用性,零基础也能理解。

一、基础排序&查找算法(所有开发的「基本功」,工程中高频使用)

是处理线性数据的基础,C++ STL(sort/binary_search)已内置实现,开发中直接调用,但需理解原理适配场景。

核心排序算法

算法

核心思想

时间复杂度

适用场景

你的开发例子

快速排序

分治,选基准分治左右区间

O(nlogn)

通用排序,原地排序省内存

对检测框的坐标/置信度排序

归并排序

分治,先拆后合并有序子数组

O(nlogn)

稳定排序、大数据/外排序

图像像素点的有序化处理

堆排序

利用堆结构的顶元素特性

O(nlogn)

实时取TopK(最大/最小)

取置信度前N的目标检测框

冒泡/插入排序

简单交换/插入调整

O(n²)

小规模数据(n<100)

少量传感器数据的排序

核心查找算法

算法

核心思想

时间复杂度

适用场景

你的开发例子

二分查找

有序数组折半缩小范围

O(logn)

有序数据的快速查询

查找图像像素的指定灰度值位置

哈希查找

哈希函数映射键值对

O(1)(平均)

高频增删查、缓存

传感器数据的键值对缓存查询

线性查找

顺序遍历

O(n)

无序、小规模数据

遍历检测结果的单个目标

高频用法:工程中直接用C++ STL——sort()(快速排序底层)、binary_search()(二分)、unordered_map(哈希查找)。

二、字符串&文本处理算法(处理字符/文本数据,日志/标注/协议解析)

你开发中可能接触图像标注文本、日志解析、通信协议字符串处理,这类算法是核心,C++可结合string/regex库使用。

  1. 字符串匹配:KMP算法(预处理模式串,避免重复匹配,用于固定协议解析)、BF算法(简单暴力,小规模匹配)、BM算法(工业级,比KMP更快,如文本检索);

  2. 正则表达式:基于有限状态机,用于模糊匹配/提取(如从日志中提取传感器错误码、从标注文本中提取目标坐标);

  3. 字符串处理:分割/拼接/替换(C++split/substr)、子串查找(find)、回文判断(小众,面试高频);

  4. 布隆过滤器:高效判断「元素是否存在」,低误判率,用于大规模文本/数据的快速过滤(如智驾中过滤无效的传感器数据标识)。

三、图论算法(解决「节点+边」的关系问题,智驾/后端/网络核心)

图论是智能驾驶规控、路径规划、网络通信、拓扑分析的核心,你做智驾感知后处理,后续接触规控会高频用到。

基础图操作
  • 图的存储:邻接矩阵(稠密图,如小范围路径规划)、邻接表(稀疏图,如城市道路网);

  • 图的遍历:深度优先搜索(DFS,递归/栈,如地图拓扑遍历)、广度优先搜索(BFS,队列,如层级路径查找)。

工程高频图算法

算法

核心思想

适用场景

你的开发例子

Dijkstra

贪心,求单源最短路径(无负权)

路径规划、最短距离

智驾中无拥堵的最短路径规划

A*(A星)

Dijkstra+启发函数(预估代价)

实时路径规划(最优+高效)

智驾核心路径规划算法(车载端主流)

Floyd-Warshall

动态规划,求多源最短路径

小规模图的全路径规划

园区内智驾小车的路径规划

Kruskal/Prim

贪心,求最小生成树

网络拓扑、布线优化

车载传感器网络的拓扑构建

拓扑排序

处理有向无环图(DAG)

任务调度、依赖执行

智驾算法的模块执行顺序调度(如先感知后规控)

四、动态规划(DP)—— 解决「最优子结构」问题,高精度优化

核心思想:将大问题拆分为重叠的小问题,保存小问题的解避免重复计算(「空间换时间」),适合多阶段、有重叠子问题、最优子结构的优化场景,精度高但实现稍复杂。

工程高频DP算法/模型
  1. 经典模型:01背包(物品选/不选,如智驾中传感器组合选型)、完全背包(物品可重复选,如资源分配)、最长公共子序列(LCS,如图像特征匹配、文本相似度)、最长递增子序列(LIS,如轨迹点的有序化);

  2. 适用场景路径优化、资源分配、特征匹配、序列预测

  3. 你的开发例子:智驾中车辆轨迹的最优规划(多阶段的路径代价优化)、OpenCV中两幅图像的特征点序列匹配(LCS)、传感器资源的最优分配(背包模型)。

五、贪心算法—— 解决「局部最优推全局最优」问题,实时性优先

核心思想:每一步选择当前局部最优解,不考虑全局后续,无需保存子问题解,特点是实现简单、运行高效(时间复杂度低),适合对实时性要求高、可接受局部最优的场景(工程中比动态规划更常用,因为平衡效率和效果)。

工程高频用法
  1. 经典例子:哈夫曼编码(数据压缩,如车载传感器数据的压缩存储)、活动选择问题(任务调度,如智驾算法的任务优先级调度)、零钱兑换(简单资源分配);

  2. 你的开发例子:智驾中实时避障的局部路径选择(每一步选当前无障碍物的最优方向)、目标检测后处理的简单框筛选(选当前置信度最高的框)、图像压缩的哈夫曼编码(OpenCV图像存储优化)。

关键区别:贪心≠动态规划——贪心局部最优,高效但不一定全局最优;DP全局最优,但耗时/耗内存,工程中优先用贪心(实时性),精度要求极高时用DP。

六、分治算法—— 解决「大问题拆独立小问题」,并行计算友好

核心思想:分而治之,将大问题拆分为相互独立、结构相同的小问题,分别解决后合并结果,是并行计算、大规模数据处理的核心思想,很多经典算法(快速排序、归并排序、FFT)都是分治的实现。

工程高频用法
  1. 经典实现:快速排序/归并排序、二分查找、快速傅里叶变换(FFT,信号处理);

  2. 适用场景大规模数据处理、并行计算、图像分块处理

  3. 你的开发例子:OpenCV中图像分块滤波/特征提取(将大图像拆为小分块,多线程并行处理)、激光雷达点云的分块聚类(大规模点云拆分为小区域,分别聚类后合并)、智驾中多传感器数据的分块处理

七、回溯&剪枝算法—— 解决「穷举搜索」问题,候选集筛选

核心思想:深度优先穷举所有可能的解,在搜索过程中「剪枝」排除无效解,避免全量穷举,适合组合/排列、候选集筛选、约束满足的问题,工程中常用于小规模候选集的最优解查找

工程高频用法
  1. 经典例子:八皇后问题、子集和问题、排列组合;

  2. 适用场景目标候选框筛选、特征点匹配、组合选型

  3. 你的开发例子:目标检测中候选框的剪枝筛选(排除超出图像边界、置信度过低的框,减少后续计算)、智驾中传感器组合的候选集筛选(满足约束的传感器组合)、图像特征点的匹配对剪枝(排除错误的特征匹配对)。

八、数值计算算法(OpenCV/图像处理/信号处理的「底层核心」)

你做OpenCV开发、图像后处理、传感器数据计算,这类算法是最核心的底层工具,OpenCV已封装所有实现,但理解原理能帮你解决调参/报错问题(比如之前的Mat ROI断言错误)。

工程高频数值算法
  1. 矩阵运算:矩阵乘法、转置、求逆、特征值分解(EVD)、奇异值分解(SVD)——OpenCVcv::Mat的核心操作,用于图像变换、特征提取、传感器标定(如相机内参标定的矩阵求解);

  2. 卷积/相关运算:滑动窗口的加权求和——图像滤波、特征提取的核心(如高斯滤波、Sobel边缘检测、CNN的卷积层);

  3. 插值算法:最近邻插值、双线性插值、双三次插值——OpenCV中图像缩放/裁剪/仿射变换(如将检测框缩放到固定尺寸,避免像素失真);

  4. 数值拟合/求解:最小二乘法(数据拟合,如传感器数据的误差拟合)、牛顿迭代法(求解方程,如相机畸变校正的参数求解);

  5. 滤波算法:卡尔曼滤波、均值滤波、高斯滤波、中值滤波——传感器数据去噪、目标跟踪(智驾中激光雷达/摄像头数据去噪,卡尔曼滤波是目标跟踪的基础)。

九、机器学习基础算法(智驾感知/计算机视觉的「核心算法」)

你做智能驾驶感知后处理,这类算法是感知层的核心,分为传统机器学习(工程中易部署、实时性高)和深度学习(高精度,需硬件加速),C++可通过OpenCV/ML库/TensorRT部署。

传统机器学习(车载端主流,易部署)

算法

核心思想

适用场景

你的开发例子

K-Means

聚类,按距离划分类簇

无监督分类、数据分群

激光雷达点云的聚类(区分障碍物/地面)

SVM(支持向量机)

找最优超平面分类

二分类、小样本分类

目标的二分类(如行人/非行人)

决策树/随机森林

按特征递归划分决策节点

多分类、特征重要性分析

多目标分类(行人/车辆/非机动车)

贝叶斯分类器

基于贝叶斯定理的概率分类

文本/图像分类、低噪声场景

图像目标的快速分类

KNN(K近邻)

按最近K个样本分类/回归

简单分类/回归、小样本

传感器数据的异常检测

深度学习(高精度,需GPU/TPU/NPU加速)
  1. 卷积神经网络(CNN):基于卷积的特征提取,用于目标检测、图像分类、语义分割(智驾中主流的感知算法,如YOLO、Faster R-CNN、UNet);

  2. 循环神经网络(RNN/LSTM/GRU):处理序列数据,用于轨迹预测、时序数据分析(智驾中车辆/行人的轨迹预测);

  3. Transformer:自注意力机制,用于多传感器融合、全局特征提取(新一代智驾感知算法,如BEVFormer);

  4. 后处理算法非极大值抑制(NMS)——你做的postprocess.cpp核心算法,用于过滤目标检测的重复框,保留最优框(OpenCV已封装cv::dnn::NMSBoxes)。

十、工程专用算法(流式/实时/嵌入式,贴合开发场景)

针对计算机工程的实际需求(实时性、嵌入式、流式数据),是上述基础算法的工程化优化,你做车载嵌入式开发(智驾)会高频用到。

  1. 流式/在线算法:处理实时连续的数据流(如传感器/摄像头的实时数据),无需加载全量数据(如在线排序、在线聚类、滑动窗口统计);

  2. 嵌入式优化算法:针对嵌入式设备(车载MCU/MPU)的低算力优化(如算法的定点化、剪枝、量化,减少计算量和内存占用);

  3. 多传感器融合算法:卡尔曼滤波、扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)、贝叶斯融合——智驾核心算法,融合激光雷达/摄像头/毫米波雷达的数据,提升感知精度;

  4. 非极大值抑制(NMS)& 改进NMS:如Soft-NMS、DIoU-NMS——目标检测后处理标配算法,解决重复检测框问题;

  5. 滑动窗口算法:固定窗口遍历数据,用于特征提取、目标检测、数据统计(如图像的滑动窗口特征提取、传感器数据的滑动窗口去噪)。

关键选型建议(结合你的C++/OpenCV/智驾开发)

算法没有“最优”,只有“最适合”,结合你的开发场景(车载嵌入式、智驾感知后处理、OpenCV),选型核心原则:

  1. 实时性优先:车载端对延迟要求高(毫秒级),优先选贪心算法、传统机器学习、轻量图算法(A*)、工程优化算法(NMS/卡尔曼滤波),避免复杂的动态规划/深度学习(需硬件加速);

  2. OpenCV开发:直接用OpenCV封装的算法——排序/查找(STL)、卷积/插值/滤波(cv::filter2D/cv::resize)、NMS(cv::dnn::NMSBoxes)、矩阵运算(cv::Mat);

  3. 感知后处理:核心用NMS(去重)、排序算法(置信度排序)、聚类算法(点云/框聚类)、卡尔曼滤波(跟踪)

  4. 规控衔接:接触路径规划时,核心用A*算法(路径规划)、拓扑排序(任务调度)、贪心/DP(路径优化)

  5. 嵌入式部署:算法需轻量化优化(如深度学习模型的量化/剪枝、传统算法的定点化),优先用C++实现,避免大内存的算法。

总结

计算机常用算法按从基础到工程的顺序,核心是排序/查找(基本功)→ 数值计算/字符串(底层处理)→ 图论/DP/贪心(优化问题)→ 机器学习/计算机视觉(智能感知)→ 工程专用算法(落地优化)

对你的C++/OpenCV/智驾开发而言,高频核心算法是:排序/二分查找、卷积/插值/滤波(OpenCV)、NMS/卡尔曼滤波(后处理/跟踪)、A(路径规划)、K-Means/CNN(感知)、哈希查找(缓存)*,这些是你日常开发和后续技术提升的重点。

要不要我帮你整理一份智驾感知后处理专用算法清单(含NMS、卡尔曼滤波等的C++/OpenCV实现思路)?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 7:42:43

如何提升DeepSeek-R1-Distill-Qwen-1.5B响应质量?系统提示使用规范

如何提升DeepSeek-R1-Distill-Qwen-1.5B响应质量&#xff1f;系统提示使用规范 1. DeepSeek-R1-Distill-Qwen-1.5B模型介绍 DeepSeek-R1-Distill-Qwen-1.5B是DeepSeek团队基于Qwen2.5-Math-1.5B基础模型&#xff0c;通过知识蒸馏技术融合R1架构优势打造的轻量化版本。其核心设…

作者头像 李华
网站建设 2026/7/14 21:54:36

手机自动化新玩法!Open-AutoGLM结合WiFi远程调试

手机自动化新玩法&#xff01;Open-AutoGLM结合WiFi远程调试 1. 引言&#xff1a;让AI真正“接管”你的手机 在智能手机功能日益复杂的今天&#xff0c;用户每天需要重复大量操作&#xff1a;刷短视频、查天气、下单外卖、回复消息……这些任务虽然简单&#xff0c;却消耗着宝…

作者头像 李华
网站建设 2026/7/13 19:05:15

静态功耗下同或门的稳定性问题快速理解

同或门在低功耗设计中的“隐性崩溃”&#xff1a;静态功耗下的输出稳定性危机你有没有遇到过这样的情况&#xff1f;电路功能仿真完全正确&#xff0c;时序收敛良好&#xff0c;芯片流片回来后却发现——系统偶尔会莫名其妙地误唤醒、状态丢失&#xff0c;甚至在深度睡眠中悄然…

作者头像 李华
网站建设 2026/7/1 8:23:05

SGLang GPU利用率低?多请求共享机制优化实战

SGLang GPU利用率低&#xff1f;多请求共享机制优化实战 1. 引言&#xff1a;SGLang 推理框架的性能挑战 随着大语言模型&#xff08;LLM&#xff09;在生产环境中的广泛应用&#xff0c;推理服务的效率问题日益凸显。尽管硬件算力持续提升&#xff0c;但在实际部署中&#x…

作者头像 李华
网站建设 2026/7/13 8:27:11

高保真语音合成新选择|Supertonic设备端TTS深度体验

高保真语音合成新选择&#xff5c;Supertonic设备端TTS深度体验 1. 引言&#xff1a;为什么需要设备端TTS&#xff1f; 在智能硬件、边缘计算和隐私敏感型应用快速发展的今天&#xff0c;文本转语音&#xff08;Text-to-Speech, TTS&#xff09;技术正从“云端主导”向“设备…

作者头像 李华
网站建设 2026/6/26 0:50:32

混元翻译模型HY-MT1.5-7B:方言变体处理技术揭秘

混元翻译模型HY-MT1.5-7B&#xff1a;方言变体处理技术揭秘 1. HY-MT1.5-7B模型介绍 混元翻译模型&#xff08;HY-MT&#xff09;1.5 版本系列包含两个核心模型&#xff1a;HY-MT1.5-1.8B 和 HY-MT1.5-7B。这两个模型均专注于实现高质量的多语言互译&#xff0c;支持包括英语…

作者头像 李华