2023-2024-1 20231329《计算机程序与设计》第六周学习总结

发布时间 2023-11-02 21:52:46作者: 20231329向鲸凝

作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06
这个作业的目标 计算机科学概论第7章 并完成云班课测试 《C语言程序设计》第5章并完成云班课测试
作业正文 https://www.cnblogs.com/xjn123/p/17806093.html

教材学习内容总结

《计算机科学概论》第7章 问题求解与算法设计
7.1提出问题
寻找熟悉情况 分治法 解决方法(算法)
计算机求解问题方法总结 分析问题 列出主要任务 编写其余的模块 根据需要进行重组和改写
7.2 有简单参数的算法
分为带有选择的算法 带有循环的算法(计数控制和事件控制)
需要进一步扩展的步骤叫做抽象步骤, 不需要扩展的步骤叫做具体步骤
7.3复杂变量
数组是同构项目的有名集合,记录是异构项目的有名集合,与数组有关的算法分为三类,搜索 排序 处理
7.4搜索算法
顺序搜索,二分检索(当数组是有序的已经排好,且其中的项目不过20个,那么使用二分检索算法更好)
7.5排序
选择排序 冒泡排序和插入排序
7.6递归算法
递归算法就是算法调用它本打算的能力,是另一种重复循环的控制结构。每个递归算法至少有两种情况:基本情况和一般情况
7.7几个重要思想
信息隐蔽 抽象 事物命名 测试

《C语言程序与设计》第5章 选择控制结构
5.1计算机能理解的唯一语言就是机器语言
5.2算法的概念及方法
算法的描述方法主要分为:自然语言描述 流程图描述 NS结构化流程图描述 伪码描述
5.3关系运算符与关系表达式
不要将==误写为= 前者是相等关系运算符 后者是赋值运算符
5.4用于单分支控制的条件语句
if
if (a>b) max=a;
if(a<=b)max= b;
5.5用于双分支控制的条件语句
if
else
if(a>b) max=a;
else max=b;
5.6条件运算符与条件表达式
max =a >b ? a: b;
含义是:若表达式1的值非0,则该条件表达式的值是表达式2的值,否则是表达式3的值
5.7用于多分支控制的条件语句
exit(code);
函数exit()的作用是终于整个程序的执行,强制返回操作系统
5.8用于多路选择的switch语句
switch(表达式)
{
case1:

case2:

case3:

}
5.9逻辑运算符和逻辑表达式
逻辑或运算的特点是:两个操作数中只要有一个为真,运算结果就为真;仅当两个操作数都为假,运算结果才为假

教材学习中的问题和解决过程

二分搜索法与顺序搜索法的比较
搜索方式:
二分搜索法:将搜索区间分成两半,然后确定目标元素位于哪一半,不断缩小搜索区间,直到找到目标元素或搜索区间为空。这是一种分而治之的策略。
顺序搜索法:从头到尾逐个检查每个元素,直到找到目标元素或搜索完整个数据集。
时间复杂度:
二分搜索法:具有O(log n)的时间复杂度,其中n是数据集的大小。每次搜索都将搜索范围减半,因此在大型有序数据集中非常高效。
顺序搜索法:具有O(n)的时间复杂度,因为在最坏情况下,需要检查整个数据集。
数据要求:
二分搜索法:数据集必须是有序的,否则无法应用二分搜索。
顺序搜索法:数据集可以是无序的,因为它不受数据集的排序状态限制。
总之,二分搜索法在有序数据集中非常高效,而顺序搜索法对数据集的有序性没有要求,但效率相对较低。选择搜索算法应根据数据集的性质和搜索需求来确定。

基于AI的学习

知识点1

我在学问题求解与知识点,请你以苏格拉底的方式对我进行提问,一次一个问题

当然,我可以采用苏格拉底的方式来与你进行提问。让我们开始:

你正在学习的问题或知识点是什么?
z
问题求解与算法计算

很好。在问题求解和算法计算方面,让我向你提出下一个问题:

你对于问题求解中的特定类型或算法有着特殊的兴趣吗?或者有没有遇到过一些具体的难题或算法,你希望能更深入了解或解决?
z
二分检索与顺序检索

理解二分搜索和顺序搜索是问题求解和算法计算的关键知识点之一。接下来,我想提出下一个问题:

你知道二分搜索和顺序搜索的基本原理和应用吗?如果是的话,你能简要描述它们吗?如果不清楚,你希望我为你解释它们吗?
z
顺序搜索是以此查找每个元素与自己所需要的元素进行比较 二分搜索是从数组中间开始比较,每次比较可以使查找元素少一半

非常好,你对顺序搜索和二分搜索的概念有很好的理解。

现在请让我问下一个问题:

你认为在什么情况下会更倾向于使用顺序搜索?而在什么情况下会更倾向于使用二分搜索?
z
数据较多时使用二分搜索 数据较少时使用顺序搜索

你的答案很正确。通常来说,二分搜索在有序数据集中效率更高,因为它可以迅速排除掉一半的可能性,而顺序搜索则适用于无序数据集,但在大型数据集中效率较低。

接下来,我提出下一个问题:

除了顺序搜索和二分搜索,你是否了解其他常见的搜索算法,以及它们的应用场景?如果了解,能分享一些例子吗?如果不了解,是否有兴趣了解更多搜索算法?
z
不了解

知识点2
我在学条件语句知识点,请你以苏格拉底的方式对我进行提问,一次一个问题

当然,我可以以苏格拉底的方式向你提问关于条件语句的问题。开始吧:

你对条件语句有什么基本的了解吗?你能简要解释条件语句是什么吗?
z
单分支控制 双分支控制 多分支控制

你提到了单分支控制、双分支控制和多分支控制,这是关于条件语句的不同类型。让我们深入了解:

请解释一下单分支控制、双分支控制和多分支控制分别是什么,以及它们在编程中的作用是什么?
z
if if else else if 解决各类选择问题

条件运算符与条件表达式

条件运算符(也称为三元运算符)和条件表达式是用于在单行中表示条件的工具。它们在编程中用于简化条件性的赋值和操作。让我们深入了解它们:

请解释条件运算符和条件表达式是什么,以及它们在编程中的作用是什么?
条件运算符(三元运算符):
条件运算符是一种用于将条件判断和结果分配合并在一起的运算符。通常,它的形式如下:

python
result = value_if_true if condition else value_if_false
在这里,如果 condition 为真,那么 result 将被赋值为 value_if_true,否则它将被赋值为 value_if_false。条件运算符通常用于编写简洁的条件性代码,例如在一个单行中根据条件分配变量的值。

条件表达式:
条件表达式是一种在表达式中使用条件的方式。在很多编程语言中,它类似于条件运算符的功能,但它不一定总是用于赋值,而是可以用于计算表达式的值。条件表达式的一般形式如下:

python
value = condition ? value_if_true : value_if_false
条件表达式用于在一个表达式中执行条件判断并返回一个值。它可以用于各种计算和操作,根据条件的真假返回不同的结果。

例如,下面是一个使用条件运算符的示例:

python
x = 10
y = 20
max_value = x if x > y else y
在这个示例中,max_value 将被赋值为 x,因为条件 x > y 为假,所以 value_if_false(y) 被赋给了 max_value。

条件运算符和条件表达式都是编程中用于处理条件的有用工具,可以使代码更加简洁和可读。

代码调试中的问题和解决过程

运算符号的问题,计算百分数100 百分数75计算后两位浮点数要用.2f%%
一个%表示的是运算符 两个表示输出百分数

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90