2024-2025-1 20241428 《计算机基础与程序设计》第5周学习总结
作业信息
|这个作业要求在哪里|<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)|
|这个作业的目标|Pep/9虚拟机 机器语言与汇编语言 算法与伪代码 测试:黑盒,白盒|
|作业正文|https://i.cnblogs.com/posts/edit |
教材学习内容总结
算法的特性:
有穷性:算法必须在执行有限步骤后终止。
确定性:算法的每一步骤都必须有明确的定义。
可行性:算法的每一步都必须足够基本,以至于可以准确无误地执行。
输入:一个算法有0个或多个输入。
输出:一个算法有一个或多个输出。
通用性:算法可以被用来解决一类问题,而不仅仅是单个问题。
算法的设计原则:
分解:将复杂问题分解成更小、更易于管理的部分。
模式识别:识别重复出现的问题,并为它们设计通用解决方案。
抽象:忽略细节,关注问题的核心部分。
简化:使用简单的方法解决问题,避免不必要的复杂性。
算法的分析:
时间复杂度:算法执行时间随输入规模增长的变化趋势。
空间复杂度:算法执行过程中需要的存储空间随输入规模增长的变化趋势。
伪代码的组成部分:
变量声明:定义算法中使用的变量。
输入/输出:描述算法的输入和输出。
控制结构:包括顺序结构、选择结构(如if-else语句)、循环结构(如for或while循环)。
操作:描述算法中的基本操作,如赋值、算术运算、逻辑运算等。
注释:对算法的某些部分进行解释,以提高可读性。
伪代码的书写风格:
使用清晰的语言和格式。
保持简洁和精确。
使用缩进来表示代码块的结构。
适当使用注释来解释复杂的逻辑。
常见的算法类型:
排序算法:如快速排序、归并排序、冒泡排序等。
搜索算法:如二分搜索、深度优先搜索(DFS)、广度优先搜索(BFS)等。
图算法:如Dijkstra算法、A*搜索、Prim算法、Kruskal算法等。
动态规划:用于解决具有重叠子问题和最优子结构特性的问题。
贪心算法:在每一步选择中都采取在当前状态下最好或最优的选择,以期望导致结果是最好或最优的算法。
算法的实现:
将伪代码转换为具体的编程语言代码。
测试算法以确保它正确地解决了问题。
优化算法以提高效率和性能。
测试用例设计:
基于需求规格说明书。
考虑所有可能的输入条件,包括边界值。
测试类型:
等价类划分:将输入数据划分为若干等价类,从每个等价类中选取测试用例。
边界值分析:测试输入或输出值的边界条件。
错误猜测:基于经验和直觉选择测试用例
决策表:使用表格形式列出条件和动作,以系统地设计测试用例。
状态转换:适用于具有明确状态的系统,测试状态之间的转换。
测试目的:
验证软件的功能是否符合用户需求。
检查软件界面是否友好。
确保软件能够处理异常情况。
测试过程:
不需要了解程序的内部结构。
测试者扮演用户的角色。
教材学习中的问题和解决过程(先问 AI)