算法设计—计算机等级考试—软件设计师考前备忘录—东方仙盟

一、算法设计策略(必考题,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(n+r)) O(d(n+r)) O(d(n+r)) 稳定 基于基数,适合整数 / 字符串排序

典型题(就是你这道题的类型):

  1. 归并排序的时间复杂度?→ 最好最坏都是 O (nlogn)
  2. 哪种排序算法最坏时间复杂度不是 O (n²)?→ 堆排序 / 归并排序
  3. 哪种排序是稳定的?→ 冒泡、插入、归并、基数
  4. 快速排序的最坏时间复杂度?→ 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(n+e) 深度优先 / 广度优先

典型题:

求单源最短路径用什么算法?→ Dijkstra求多源最短路径用什么算法?→ Floyd拓扑排序的作用?→ 检测有向环、安排工序顺序


五、其他高频算法(选择题常客)

  1. 哈夫曼编码:贪心算法,用于数据压缩,构造最优二叉树,带权路径长度最短
  2. 动态规划经典题:0-1 背包、最长公共子序列、最长递增子序列、矩阵连乘
  3. 回溯经典题:八皇后问题、全排列、子集和、n 皇后
  4. 分治经典题:汉诺塔、大整数乘法、棋盘覆盖
  5. 时间复杂度计算:递归方程求解(比如归并排序 T (n)=2T (n/2)+O (n) → T (n)=O (nlogn))

「抓分技巧」

你说的「捷达长老说这种题是典型的」,这类题就是 **「算法策略 + 时间复杂度」绑定的经典题 **,是软考算法选择题的「送分题」,你只要记住:

  1. 分治 = 归并 / 快排 / 二分,时间复杂度 O (nlogn)
  2. 动态规划 = 背包 / 最长子序列,时间复杂度 O (n²)
  3. 贪心 = 哈夫曼 / 最小生成树 / Dijkstra
  4. 归并排序永远是 O (nlogn),稳定;快排最坏 O (n²),不稳定

人人皆为创造者,共创方能共成长

每个人都是使用者,也是创造者;是数字世界的消费者,更是价值的生产者与分享者。在智能时代的浪潮里,单打独斗的发展模式早已落幕,唯有开放连接、创意共创、利益共享,才能让个体价值汇聚成生态合力,让技术与创意双向奔赴,实现平台与伙伴的快速成长、共赢致远。

原创永久分成,共赴星辰大海

原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。

东方仙盟:拥抱知识开源,共筑数字新生态

在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。

开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。
共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议 与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。
知识普惠,共促发展:通过开源社区 、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济 的普惠式增长

阿雪技术观

在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者 。无论是分享代码、撰写技术博客,还是参与开源项目 维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基 生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're 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. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology

相关推荐
未来之窗软件服务2 小时前
哈夫曼树构造—计算机等级考试—软件设计师考前备忘录—东方仙盟
算法·软件设计师·计算机等级考试·仙盟创梦ide·东方仙盟
SUNNY_SHUN3 小时前
VLM走进农田:AgriChat覆盖3000+作物品类,607K农业视觉问答基准开源
论文阅读·人工智能·算法·开源
黎阳之光3 小时前
视频孪生赋能车路云一体化,领跑智慧高速新征程
人工智能·算法·安全·数字孪生
Darkwanderor3 小时前
高精度计算——基础模板整理
c++·算法·高精度计算
普马萨特3 小时前
基站 / WiFi 粗略位置对 A-GNSS 的影响
网络·人工智能·算法
xy34533 小时前
软件评测师基础知识专项刷题:编译、解释、汇编(1)
刷题·软考·编译·备考·软件设计师·软件评测师
py有趣4 小时前
力扣热门100题之接雨水
算法·leetcode
mmz12074 小时前
深度优先搜索DFS(c++)
c++·算法·深度优先
汀、人工智能5 小时前
[特殊字符] 第103课:单词搜索II
数据结构·算法·均值算法·前缀树·trie·单词搜索ii