2024-2025-1 20241423 《计算机基础与程序设计》第六周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP) |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第六周作业 |
这个作业的目标 | 学习Polya如何解决问题、简单类型与组合类型、复合数据结构、查找与排序算法、算法复杂度、递归、代码安全 |
作业正文 | ... 本博客链接 |
教材学习内容总结
- 算法基础:算法是用于解决问题的一组明确的、有序的步骤。具有确定性、有穷性、可行性、输入和输出等特性。确定性指的是算法的每一步操作都必须是明确的;有穷性表示算法必须在有限的步骤内结束;可行性意味着算法的操作是可以通过计算机实现的;输入是算法运行所需的初始数据,输出则是算法运行后的结果。包括自然语言描述、伪代码、流程图等。自然语言描述比较直观但可能不够精确;伪代码是一种介于自然语言和编程语言之间的表示方法,方便人们理解算法的逻辑;流程图则通过图形化的方式展示算法的流程和控制结构。
- 基本算法
(1)搜索算法:
顺序搜索:一种简单的搜索算法,从数据集合的开头依次遍历每个元素,直到找到目标元素或遍历完整个集合。该算法适用于小型数据集或未排序的数据集合,但效率较低。
二分搜索:对于已排序的数据集合,每次将搜索区间减半,逐步缩小搜索范围,直到找到目标元素。二分搜索的效率较高,但要求数据必须是有序的。
(2)排序算法:
冒泡排序:通过多次比较相邻元素并交换位置,将较大的元素逐步“冒泡”到数组的末尾,从而实现对数组的排序。该算法简单易懂,但效率也相对较低,尤其是对于大规模数据。
插入排序:将待排序的元素逐个插入到已排序的部分中,保持已排序部分的有序性。插入排序对于接近有序的数据集表现较好,其时间复杂度与数据的初始状态有关。
3.关系运算符和逻辑运算符:
关系运算符(如大于>、小于<、等于==等)用于比较两个值的关系,其结果为真(非零值)或假(0)。
逻辑运算符(与&&、或||、非!)用于组合或否定多个条件表达式,以确定复杂的逻辑关系。
4.if 语句:
简单 if 语句:根据给定的条件判断是否执行特定的语句块。如果条件为真,则执行相应的语句;如果条件为假,则跳过该语句块。
if-else 语句:用于在两种不同的情况中进行选择。如果条件为真,执行一个语句块;如果条件为假,执行另一个语句块。
嵌套的 if 语句:可以在一个 if 语句内部嵌套另一个 if 语句,以实现更复杂的条件判断。
5.switch 语句:
根据一个表达式的值,从多个不同的 case 标签中选择一个执行相应的语句块。
每个 case 标签对应一个特定的值,当表达式的值与某个 case 标签的值相等时,执行该 case 后面的语句。
可以使用 break 语句来跳出 switch 语句,防止继续执行下一个 case。
教材学习中的问题和解决过程
Polya如何解决问题概念不清,寻求AI帮助总结,结果如下:
波利亚(Polya)提出了一套解决问题的方法,主要包括以下四个步骤:
一、理解问题
- 首先要明确问题的目标是什么。你需要确切地知道要求解的是什么,问题的最终结果应该是什么样子。
- 确定问题中的已知条件。仔细分析题目中给出的各种信息、数据和约束条件,这些将是解决问题的基础。
- 尽可能地用自己的话重新表述问题,以确保完全理解问题的本质。
二、制定计划 - 思考解决问题的策略和方法。这可能包括:
- 尝试回忆类似的问题以及曾经使用过的解决方法,看是否可以借鉴。
- 采用逐步逼近的方法,先解决一个简化的版本或者子问题,然后逐步扩展到整个问题。
- 利用图形、图表或模型来帮助理解问题,找到解题的思路。
- 选择一个具体的计划,并预测可能遇到的困难和解决方案。在这个阶段,你可以进行一些初步的尝试和探索,以验证计划的可行性。
三、执行计划 - 按照制定的计划一步一步地进行操作。在执行过程中,要保持细心和耐心,确保每一步的计算和推理都是正确的。
- 如果遇到困难或者发现计划不可行,不要轻易放弃。可以重新审视问题,调整计划,或者尝试其他的方法。
四、回顾反思 - 检查答案是否正确。将得到的结果代入原问题中进行验证,确保满足问题的所有条件。
- 分析解决问题的过程。思考哪些步骤是关键的,哪些方法是有效的,哪些地方可以改进。
- 总结经验教训。将这次解决问题的过程中的收获记录下来,以便在以后遇到类似问题时能够更加高效地解决。