算法设计—计算机等级考试—软件设计师考前备忘录—东方仙盟
一、算法设计策略必考题1-2 分核心考点4 大策略的定义 代表算法表格策略核心代表算法考试关键词分治拆独立子问题分而治之归并排序、快速排序、二分查找、汉诺塔「拆分、递归、合并」动态规划重叠子问题空间换时间最长公共子序列、0-1 背包、最短路径、矩阵连乘「最优子结构、子问题重叠、填表」贪心局部最优一步到位哈夫曼树、活动安排、Prim/Kruskal、Dijkstra「当前最优、不回溯、贪心选择」回溯深度优先试错回溯八皇后、全排列、子集和、图的着色「穷举、回溯、剪枝」典型题快速排序 / 归并排序采用了什么策略→ 分治0-1 背包问题采用了什么策略→ 动态规划哈夫曼编码采用了什么策略→ 贪心二、排序算法必考题2-3 分软考算法题核心核心考点时间复杂度、稳定性、适用场景表格排序算法最好时间最坏时间平均时间稳定性核心特点冒泡排序O(n)O(n²)O(n²)稳定相邻比较简单数据有序时最快直接插入排序O(n)O(n²)O(n²)稳定适合小规模 / 基本有序数据简单选择排序O(n²)O(n²)O(n²)不稳定移动次数少适合移动成本高的场景希尔排序O(nlogn)O(n²)O(n^1.3)不稳定插入排序的改进分组插入快速排序O(nlogn)O(n²)O(nlogn)不稳定分治平均最快最坏退化堆排序O(nlogn)O(nlogn)O(nlogn)不稳定适合大数据量不稳定归并排序O(nlogn)O(nlogn)O(nlogn)稳定分治稳定适合外部排序基数排序O(d(nr))O(d(nr))O(d(nr))稳定基于基数适合整数 / 字符串排序典型题就是你这道题的类型归并排序的时间复杂度→ 最好最坏都是 O (nlogn)哪种排序算法最坏时间复杂度不是 O (n²)→ 堆排序 / 归并排序哪种排序是稳定的→ 冒泡、插入、归并、基数快速排序的最坏时间复杂度→ O (n²)数据完全有序时三、查找算法必考题1-2 分核心考点时间复杂度、适用场景表格查找算法时间复杂度适用数据核心特点顺序查找O(n)无序 / 有序简单适合小规模数据二分查找折半查找O(logn)有序顺序表分治必须有序不能用于链表散列查找哈希O (1)平均任意哈希函数解决冲突链地址法、开放定址法二叉排序树查找O (logn)平衡/O (n)退化二叉排序树动态查找插入删除方便典型题二分查找的时间复杂度→ O (logn)散列查找的平均时间复杂度→ O (1)二分查找能否用于链表→ 不能链表无法随机访问四、图的算法必考题2-3 分核心考点最小生成树、最短路径、拓扑排序表格算法用途时间复杂度策略Prim 算法最小生成树稠密图O(n²)贪心Kruskal 算法最小生成树稀疏图O(eloge)贪心Dijkstra 算法单源最短路径无负权O(n²)贪心Floyd 算法多源最短路径可负权无负环O(n³)动态规划拓扑排序有向无环图DAG的顶点排序O(ne)深度优先 / 广度优先典型题求单源最短路径用什么算法→ Dijkstra求多源最短路径用什么算法→ Floyd拓扑排序的作用→ 检测有向环、安排工序顺序五、其他高频算法选择题常客哈夫曼编码贪心算法用于数据压缩构造最优二叉树带权路径长度最短动态规划经典题0-1 背包、最长公共子序列、最长递增子序列、矩阵连乘回溯经典题八皇后问题、全排列、子集和、n 皇后分治经典题汉诺塔、大整数乘法、棋盘覆盖时间复杂度计算递归方程求解比如归并排序 T (n)2T (n/2)O (n) → T (n)O (nlogn)「抓分技巧」你说的「捷达长老说这种题是典型的」这类题就是 **「算法策略 时间复杂度」绑定的经典题 **是软考算法选择题的「送分题」你只要记住分治 归并 / 快排 / 二分时间复杂度 O (nlogn)动态规划 背包 / 最长子序列时间复杂度 O (n²)贪心 哈夫曼 / 最小生成树 / Dijkstra归并排序永远是 O (nlogn)稳定快排最坏 O (n²)不稳定人人皆为创造者共创方能共成长每个人都是使用者也是创造者是数字世界的消费者更是价值的生产者与分享者。在智能时代的浪潮里单打独斗的发展模式早已落幕唯有开放连接、创意共创、利益共享才能让个体价值汇聚成生态合力让技术与创意双向奔赴实现平台与伙伴的快速成长、共赢致远。原创永久分成共赴星辰大海原创创意共创、永久收益分成是东方仙盟始终坚守的核心理念。我们坚信每一份原创智慧都值得被尊重与回馈以永久分成锚定共创初心让创意者长期享有价值红利携手万千伙伴向着科技星辰大海笃定前行拥抱硅基 生命与数字智能交融的未来共筑跨越时代的数字文明共同体。东方仙盟拥抱知识开源共筑数字新生态在全球化与数字化浪潮中东方仙盟始终秉持开放协作、知识共享的理念积极拥抱开源技术与开放标准。我们相信唯有打破技术壁垒、汇聚全球智慧才能真正推动行业的可持续发展。开源赋能中小商户通过将前端异常检测、跨系统数据互联等核心能力开源化东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案让更多商家能够平等享受数字转型的红利。共建行业标准我们积极参与国际技术社区与全球开发者、合作伙伴共同制定开放协议 与技术规范推动跨境零售、文旅、餐饮等多业态的系统互联互通构建更加公平、高效的数字生态。知识普惠共促发展通过开源社区 、技术文档与培训体系东方仙盟致力于将前沿技术转化为可落地的行业实践赋能全球合作伙伴共同培育创新人才推动数字经济 的普惠式增长阿雪技术观在科技发展浪潮中我们不妨积极投身技术共享。不满足于做受益者更要主动担当贡献者 。无论是分享代码、撰写技术博客还是参与开源项目 维护改进每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地我们携手在此探索硅基 生命为科技进步添砖加瓦。Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Dont just be the one reaping all the benefits; step up and be a contributor too. Whether youre tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. Were gonna team up and explore the whole silicon - based life thing, and in the process, well be fueling the growth of technology