计算机算法核心知识点整理|个人精炼笔记,面试刷题直接背

发布时间:2026/10/2 19:28:46

计算机算法核心知识点整理|个人精炼笔记,面试刷题直接背 计算机算法核心知识点整理个人精炼笔记面试刷题直接背目录第一章 绪论1.1 什么是算法1.2 算法的描述1.3 算法的分析1.4重要的问题类型第2章 算法效率分析基础第3章 蛮力法3.1 选择排序和冒泡排序3.1.1选择排序3.1.2 冒泡排序3.2 顺序查找和蛮力字符串匹配3.2.1 顺序查找3.2.2蛮力字符串匹配3.3 最近对和凸包问题的蛮力算法3.3.1 最近问题3.3.2 凸包问题3.4 穷举查找3.5深度优先查找和广度优先查找3.5.1 深度优先查找3.5.2 广度优先查找第4章 减治法4.1 插入排序4.2 拓扑排序4.3生成祝贺对象的算法4.4 减常因子算法4.4.1 折半查找4.4.2 假币问题4.4.3 俄式乘法4.4.4 约瑟夫斯问题4.5减可变规模算法4.5.1 插值查找第五章 分治法5.1 合并排序5.2 快速排序第一章 绪论1.1 什么是算法算法(algorithm)是一系列解决问题的明确指令也就是说对于符合一定规范的输入能够在有限时间内获得要求的输出。观点可以认为算法是问题的程序化解决方案。1.2 算法的描述伪代码(pseudocode)是自然语言和类编程语言组成的混合结构。伪代码往往比自然语言更精确而且用伪代码描述的算法往往会更简洁。用箭头代表赋值操作。1.3 算法的分析效率有两种时间效率(time efficiency),指出算法运行有多快。空间效率(space efficiency),说明算法需要多少额外的存储空间。1.4重要的问题类型排序问题(sorting problem)要求我们按照升序重新排列给定列表中的数据项。查找问题(searching problem)就是在给定的集合或者是多重集它允许多个元素具有相同的值)中找一个给定的值[我们称之为查找键(search key)]。字符串处理也称字符串匹配问题图问题组合问题几何问题类似于点、线、多面体这样的几何对象。数值问题(numerical problem)是另一个广阔的具体应用领域涉及具有连续性的数学问题像解方程和方程组计算定积分以及求函数的值等。第2章 算法效率分析基础不做笔记第3章 蛮力法蛮力法(brute force)是一种简单直接地解决问题的方法常常直接基于问题的描述和所涉及的概念定义。3.1 选择排序和冒泡排序3.1.1选择排序3.1.2 冒泡排序3.2 顺序查找和蛮力字符串匹配3.2.1 顺序查找该算法只是简单地将给定列表中的连续元素和给定的查找键进行比较直到遇到一个匹配的元素成功查找或者在遇到匹配元素前就遍历了整个列表失败查找)。实现顺序查找时常常会使用这样一个小技巧如果我们把查找键添加到列表的末尾那么查找就一定会成功所以不必在算法的每次循环时都检查是否到达了表的末尾。以下是这个增强版本的伪代码。3.2.2蛮力字符串匹配查找字符串第一个字符的位置请注意在这个例子中几乎每做一次字符比较就要移动一次模式的位置。然而最坏的情况比这还要糟得多在移动模式之前算法可能会做足m次比较而n-m1次尝试的每一次都可能会遇到这种情况。因此在最坏的情况下该算法属于O(nm)。3.3 最近对和凸包问题的蛮力算法3.3.1 最近问题最近点对问题要求在一个包含n个点的集合中找出距离最近的两个点。这种处理平面或者高维空间的邻近点的问题在各种计算几何问题当中是最简单的。最近点对问题的一个最重要的应用是统计学中的聚类分析。3.3.2 凸包问题在平面或者高维空间的一个给定点集合中寻找凸包被视为计算几何中最重要的问题之一。定义对于平面上的一个点集合有限的或无限的如果以集合中任意两点p和q为端点的线段都属于该集合我们说这个集合是凸的。凸包问题省略3.4 穷举查找对于组合问题来说穷举查找(exhaustive search)是一种简单的蛮力方法。它要求生成问题域中的每一个元素选出其中满足问题约束的元素然后再找出一个期望元素例如使目标函数达到最优的元素)。注意虽然穷举查找的思想很简单直接但在实现时它常常会要求算法来生成某些组合对象。常见问题旅行商问题背包问题分配问题3.5深度优先查找和广度优先查找3.5.1 深度优先查找深度优先查找可以从任意顶点开始访问图的顶点然后把该顶点标记为已访问。在每次迭代的时候该算法紧接着处理与当前顶点邻接的未访问顶点。如果有若干个这样的顶点可以任意选择一个顶点。但在实际应用中选择哪一个邻接的未访问候选顶点主要是由表示图的数据结构决定的。在我们的例子中我们总是根据顶点的字母顺序来选择顶点。)这个过程一直持续直到遇到一个终点一该顶点的所有邻接顶点都已被访问过。在该终点上该算法沿着来路后退一条边并试着继续从那里访问未访问的顶点。在后退到起始顶点并且起始顶点也是一个终点时该算法最终停了下来。这样起始顶点所在的连通分量的所有顶点都被访问过了。如果未访问过的顶点仍然存在该算法必须从其中任一顶点开始重复上述过程。用一个栈来跟踪深度优先查找的操作是比较方便的。在第一次访问一个顶点时也就是说开始对该顶点的访问时)我们把该顶点入栈当它成为一个终点时也就是说结束对该顶点的访问时)我们把它出栈。深度优先查找树depth-first search forest3.5.2 广度优先查找按照一种同心圆的方式首先访问所有和初始顶点邻接的顶点然后是离它两条边的所有未访问顶点以此类推直到所有与初始顶点同在一个连通分量中的顶点都访问过了为止。如果仍然存在未被访问的顶点该算法必须从图的其他连通分量中的任意顶点重新开始。使用队列注意它和深度优先查找的区别来跟踪广度优先查找的操作是比较方便的。该队列先从遍历的初始顶点开始将该顶点标记为已访问。在每次迭代的时候该算法找出所有和队头顶点邻接的未访问顶点把它们标记为已访问再把它们入队。然后将队头顶点从队列中移去。广度优先查找森林breadth-first search forcest第4章 减治法4.1 插入排序我们考虑如何用减一技术对一个数组A[0.-1]排序。遵循该方法的思路我们假设对较小数组A[0.n-2]排序的问题已经解决了得到了一个大小为n-1的有序数组A0]≤…≤[n-2]。我们如何利用这个较小规模的解并将元素A[n-1]考虑进来来得到原问题的解呢显然我们需要做的就是在这些有序的元素中为A[-1]找到一个合适的位置然后把它插入到那里。一般来说我们可以从右到左扫描这个有序的子数组直到遇到第一个小于等于A[-1]的元素然后把A[n-1]插在该元素的后面。这种算法被称为直接插入排序(straight insertion sort),或者简称为插入排序(insertion sort)。4.2 拓扑排序4.3生成祝贺对象的算法4.4 减常因子算法以上略有时间再做笔记4.4.1 折半查找对于有序数组的查找来说折半查找是一种性能卓越的算法。它通过比较查找键K和数组中间元素A[m]来完成查找工作。如果它们相等算法结束。否则如果KA[m],就对数组的前半部分执行该操作如果KA[m],则对数组的后半部分执行该操作。4.4.2 假币问题4.4.3 俄式乘法4.4.4 约瑟夫斯问题 三问题略4.5减可变规模算法4.5.1 插值查找有时间再做笔记第五章 分治法基本思想将一个规模为n的问题分解为k个规模较小的子问题这些子问题互相独立且原问题相同。递归地解这些子问题然后将各子问题的解合并得到原问题的解。精髓分——将问题分解为规模更小的子问题。治——将这些规模更小的子问题逐个击破。合——将已解决的子问题合并最终得到原问题的解。5.1 合并排序图5.2演示的是用合并排序算法对数列8,3,2,9,7,1,5,4进行排序的操作过程。5.2 快速排序如何系统学习网络安全/黑客网络安全不是「速成黑客」而是守护数字世界的骑士修行。当你第一次用自己写的脚本检测出漏洞时那种创造的快乐远胜于电影里的炫技。装上虚拟机从配置第一个Linux环境开始脚踏实地从基础命令学起相信你一定能成为一名合格的黑客。如果你还不知道从何开始我自己整理的282G的网络安全教程可以分享我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的网安资源希望能帮到你。需要的话可以V扫描下方二维码联系领取~如果二维码失效可以点击下方链接去拿一样的哦【CSDN大礼包】最新网络安全/网安技术资料包~282G无偿分享1.从0到进阶主流攻防技术视频教程包含红蓝对抗、CTF、HW等技术点2.入门必看攻防技术书籍pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里3.安装包/源码主要攻防会涉及到的工具安装包和项目源码防止你看到这连基础的工具都还没有4.面试试题/经验网络安全岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要需要的话可以V扫描下方二维码联系领取~因篇幅有限资料较为敏感仅展示部分资料添加上方即可获取如果二维码失效可以点击下方链接去拿一样的哦【CSDN大礼包】最新网络安全/网安技术资料包~282G无偿分享
延伸阅读

更多相关文章

2026/9/23 23:24:37

Claude API 协作过程中的质量责任划分

在 Claude API 真正落地到业务里时,质量问题往往没法简单归结为“模型不行”。一次输出不稳定,背后可能牵扯到很多环节:API 协作方式、提示词设计、接口封装、测试策略、审核流程,甚至还有上线后的监控和告警。如果一开始没有把 质…

2026/10/1 7:15:57

KMS-Tools-Portable 2026终极版:3步掌握专业软件激活工具

KMS-Tools-Portable 2026终极版:3步掌握专业软件激活工具 【免费下载链接】KMS-Tools-Portable-2026-Last-Version ⭐️ KMS-Tools-Portable | Activation Tool Suite | Keygen License Manager | Patch Installer v4.0 | Full Version Setup | Pre-Activated Premi…

2026/10/2 19:23:53

WorkBuddy本地网关:14个免费模型通道自动路由实战

1. 为什么要把十几个免费模型通道塞进一个入口手里攒了一堆免费模型通道的人,大概都经历过这种混乱:写代码的时候想用响应快的,写文案的时候想用文笔好的,做长文档总结的时候又想换一个上下文窗口大的。结果就是浏览器里开着五六个…

2026/10/2 19:23:53

从零手写Agent骨架:LLM工具调用与MCP协议实战入门

1. 为什么我要写这个 AgentSeed 系列 过去大半年,我几乎把市面上能叫得出名字的 Agent 框架都摸了一遍,从最早期用纯 Prompt 拼工具调用,到后来上手各种编排框架,再到自己动手写调度层、写记忆模块、写工具注册中心。踩过的坑多到…

2026/10/2 19:23:53

FastAPI+Vue3构建家教预约平台:从数据模型到并发控制的实战指南

去年帮朋友做了一套基于Python和Vue3的家教预约服务平台,前前后后从需求梳理到上线部署走了两个多月,中间踩了不少坑,也沉淀了一些比较实用的设计经验。这套系统并不是那种纯练手的Demo,而是真正要给学生、家长、家教老师三方一起…

2026/10/2 19:23:53

a2a-alert-agent:Python告警通知封装库的配置与实战指南

最近在搭自动化告警这套东西的时候,我又把那个Python包拎出来用了一遍——a2a-alert-agent。这名字初看有点绕,拆开其实就是agent to alert:给程序配一个“告警通讯员”。脚本跑挂了、指标超阈值了、定时任务静默失败了,它能在第一…

2026/10/2 19:23:53

Redis模糊查询全解析:从KEYS阻塞到SCAN与索引设计实战

如果你在业务代码里写过KEYS user:*,那你大概体会过那种“上线前好好的,一压测 Redis 就报警”的酸爽。Redis 的模糊查询一直是个很矛盾的话题:需求太常见,官方又不推荐用KEYS直接扫。很多人被问到时第一反应是“用 KEYS 不就完了…

2026/10/2 19:18:52

显式状态驱动:为Coding Agent构建可靠Harness执行框架

最近两个月的周末,我基本都泡在一件事上:让 coding agent 在一批真实仓库里稳定地完成“改需求-跑测试-提PR”这个闭环。试了很多方案后,一个在社区里被反复讨论的术语落到了我面前——harness。更确切地说,是 Jev 这个项目背后那…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/2 0:02:57

PWN入门:从栈溢出原理到ROP链实战

1. 这不是“学PWN”,是重新理解你每天敲的每一行C代码我第一次在CTF赛场上写出能控制程序流的exp时,手抖得连gdb的c命令都输错三次。那道题只有23行C代码,一个gets()调用,一个printf(),一个return——它甚至没开NX&…

2026/10/2 0:02:57

Windows下cudaMallocHost显存占用之谜:WDDM与TCC模式差异及优化方案

1. 一个反直觉的显存占用现象第一次在 Windows 上看到cudaMallocHost把显存吃掉的时候,我的反应是打开任务管理器反复确认了三遍。明明调用的是主机端锁页内存分配,按 CUDA 文档的说法,这块内存应该落在系统 RAM 里,跟 GPU 的显存…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑