2024-2025-1 20241304 《计算机基础与程序设计》第6周学习总结
作业信息
|这个作业属于哪个课程|<[2024-2025-1-计算机基础与程序设计](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05)|>
|-- |-- |
|这个作业要求在哪里|<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)|
|这个作业的目标|<掌握一下内容:
Polya如何解决问题
简单类型与组合类型
复合数据结构
查找与排序算法
算法复杂度
递归
代码安全>|
|作业正文|...https://www.cnblogs.com/xiaoyuanyuan999/p/18524161 |
教材学习内容总结
计算机科学概论第七章内容总结
《计算机科学概论》第七章主要内容总结
一、Polya如何解决问题
- 包括提出问题、寻找熟悉的情况、分治法等内容。通过这些步骤构建算法来解决计算机问题,最后对算法进行测试总结。整体是围绕如何通过一系列策略与步骤从问题出发到得出解决方案的过程。
二、简单类型与组合类型
- 简单类型:是构建更复杂数据类型的基础单位。例如基本的数据类型(如整数、字符等),它们各自具有简单明确的定义和操作方式。
- 组合类型:由简单类型组合而成,能够表达更复杂的信息结构,是对简单类型在功能和表达能力上的扩展。
三、复合数据结构
- 复合数据结构由多个简单数据类型或者其他复合数据结构组合而成。像数组(存储相同类型的元素序列)、结构体(可包含不同类型的成员)等都是常见的复合数据结构,它们为组织和处理复杂数据提供了有效的方式。
四、查找与排序算法
- 查找算法
算法名称 特点 顺序搜索 按顺序依次查找元素,适用于无序数据,简单但效率低,在数据量较大时耗时较长。 有序数组中的顺序搜索 数据预先排序后进行顺序查找,可利用数据有序的特性在一定程度上提高查找效率。 二分检索 针对有序数据,每次比较中间元素,根据比较结果缩小查找范围,查找效率较高,时间复杂度为 $O(\log n)$。 - 排序算法
算法名称 特点 选择排序 每次选择未排序部分的最小(大)元素放到已排序部分末尾,简单但效率相对较低,时间复杂度为 $O(n^2)$。 冒泡排序 通过相邻元素比较和交换将最大(小)元素逐步“冒泡”到正确位置,时间复杂度为 $O(n^2)$。 插入排序 将未排序元素插入到已排序部分合适位置,时间复杂度为 $O(n^2)$,在部分有序数据情况下效率较高。
五、算法复杂度
- 算法复杂度分为时间复杂度和空间复杂度。时间复杂度表示算法运行时间与输入规模的关系,如上述排序算法中的 $O(n^2)$ 和二分检索的 $O(\log n)$。空间复杂度衡量算法执行过程中所需额外空间与输入规模的关系,不同算法在时间和空间复杂度上有不同的权衡。
六、递归
- 递归是函数调用自身的机制。包含递归阶乘、递归二分检索、快速排序等递归算法示例。递归函数需要有明确的递归终止条件(如递归阶乘中当 $n = 0$ 或 $n = 1$ 时返回1),以及递归调用步骤(如 $n! = n\times(n - 1)!$)。递归在处理具有递归结构的数据(如树结构)或问题时很有效,但不当使用可能导致栈溢出等问题。
七、代码安全
- 搜索结果未明确提及代码安全相关的针对上述内容的详细总结内容,无法准确给出相关总结。
基于AI的学习
代码调试中的问题和解决过程
- 问题1:嵌套循环不会写
- 问题1解决方案:画出了程序结构图来帮助自己思考
- 问题2:阶乘运算效率低
- 问题2解决方案:减少变量
- ...