软考——软件设计师:第四章:数据结构&算法分析与设计考点总结(完整篇)(下)

简介: 软考——软件设计师:第四章:数据结构&算法分析与设计考点总结(完整篇)(下)

文章目录:


6. 

6.1 基本概念

6.2 图的存储

6.2.1 邻接矩阵 

6.2.2 邻接表

6.3 图的遍历

6.4 拓扑排序

6.5 最小生成树

6.5.1 普里姆算法(以顶点为中心,适合稠密图)

6.5.2 克鲁斯卡尔算法(以边为中心,适合稀疏图) 

7.排序与查找

7.1 查找 

7.1.1 顺序查找与二分查找 

7.1.2 散列表 

7.2 排序

7.2.1 直接插入排序

7.2.2 希尔排序

7.2.3 简单选择排序

7.2.4 堆排序

7.2.5 冒泡排序

7.2.6 快速排序

7.2.7 归并排序

7.2.8 基数排序

7.2.9 排序算法的时间复杂度、空间复杂度及稳定性 

8.算法

8.1 算法的特性

8.2 算法的时间复杂度和空间复杂度


6.图


6.1 基本概念

6.2 图的存储


6.2.1 邻接矩阵

6.2.2 邻接表

6.3 图的遍历

6.4 拓扑排序

上图的拓扑排序序列除了这四种,还有:0124635702146357。可见,对于同一张图的拓扑序列是不唯一的!!!


6.5 最小生成树


6.5.1 普里姆算法(以顶点为中心,适合稠密图)

我们首先从顶点A出发,找到与A相连的所有边的最小值,即A→B100,将这条边加进来,此时最小生成树中有AB两个结点;之后,我们再将与AB两个结点相连的所有边中的最小值加进来,可以看到应该是A→E200,此时最小生成树中有ABE三个结点;不断重复上述这样的步骤,直到遍历图中的所有结点,最终得到的就是普里姆算法的最小生成树。

注意:求解最小生成树的过程中,一定不能产生环路!!!例如上图中,当我们将结点FD都加进来之后,下来要寻找与这些结点相连的所有边中的最小值,可以看到F→B300D→C300,但是如果我们选择F→B这条路径,那么就产生了环路:A→F→B→A,这是错误的!!!所以只能选择D→C(图中的12345表示加入这条边的顺序,冒号后面的是对应边的具体值)


6.5.2 克鲁斯卡尔算法(以边为中心,适合稀疏图)

我们纵观图中的所有边,首先选出最小的一条边,也就是A→B100,此时最小生成树中有AB两个结点;之后再从图中找出值最小的边,可以看到有两条A→E200F→D200,加进来这两条边之后,并没有产生环路的现象,所以可以加入,此时最小生成树中有ABEFD这些结点;接下来,继续寻找值最小的边,应该时A→F250,将其加入;最后因为不能产生环路,所以只能添加值最小的边D→C300。至此,已遍历全图的顶点。(图中的1234表示加入这条边的顺序,冒号后面的是对应边的具体值)

7.排序与查找


7.1 查找


7.1.1 顺序查找与二分查找

我们看上面这个例题,使用二分查找关键字17,具体过程如下:👇👇👇

\left \lfloor \left (1+12 \right )/2 \right \rfloor=6,所以定位到数组下标为6的元素的位置,比较得1718,可知关键字在前半部分[15]

\left \lfloor \left ( 1+5 \right )/2 \right \rfloor=3,所以定位到数组下标为3的元素的位置,比较得1710,可知关键字在后半部分[45]

\left \lfloor \left ( 4+5 \right )/2 \right \rfloor=4,所以定位到数组下标为4的元素的位置,比较得1716,可知关键字在后半部分[55]

此时二分查找的区间只剩一个元素,即第五个元素17,比较得17=17,所以查找成功。(一共进行了4次比较)

二分查找在查找成功时,关键字得比较次数最多为:\left \lfloor log2n \right \rfloor+1。时间复杂度为O\log 2n)。


7.1.2 散列表


7.2 排序

7.2.1 直接插入排序

7.2.2 希尔排序

7.2.3 简单选择排序

7.2.4 堆排序


7.2.5 冒泡排序


7.2.6 快速排序


7.2.7 归并排序

7.2.8 基数排序

7.2.9 排序算法的时间复杂度、空间复杂度及稳定性

8.算法


8.1 算法的特性

8.2 算法的时间复杂度和空间复杂度

相关文章
|
2月前
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
457 1
软考中级软件设计师专项-数据结构与算法上篇
|
2月前
|
存储 算法 搜索推荐
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
专攻软考高频算法,深度解析二分查找、堆排序、快速排序核心技巧,对比九大排序算法,配套动画与真题,7天掌握45%分值模块。
147 1
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
|
2月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
225 3
|
5月前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
308 127
|
7月前
|
数据采集 机器学习/深度学习 算法
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
451 4
|
2月前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
|
3月前
|
机器学习/深度学习 算法 5G
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
156 0
|
4月前
|
编解码 算法 5G
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
353 2
|
4月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
149 1
|
4月前
|
人工智能 自然语言处理 算法
2025 年 7 月境内深度合成服务算法备案情况分析报告
2025年7月,中央网信办发布第十二批深度合成算法备案信息,全国389款产品通过备案,服务提供者占比超七成。截至7月14日,全国累计备案达3834款,覆盖文本、图像、音视频等多模态场景,广泛应用于生活服务、医疗、金融等领域。广东以135款居首,数字人、AI客服等C端应用主导,民营企业成主力,国企聚焦公共服务。随着AI政策推动,备案已成为AI产品合规上线关键环节。

热门文章

最新文章