Administrator
发布于 2025-09-02 / 4 阅读
0
0

C#第1章:算法与程序基础

任务一:算法的定义与特性

算法的概念是什么

算法指在解决问题时,按照某种机械的步骤一定可以得到问题的结果的处理过程。

算法就是计算机解决问题的过程。

解决问题的思路:推理实现的算法。

编写算法:操作实现的算法

算法的三要素是什么

操作

  • 算法中执行的各种基本动作

  • 包括算术运算、逻辑运算、关系运算、数据传输等

  • 例如:赋值、加减乘除、比较、输入输出等

控制结构

  • 控制算法中各操作执行的顺序

  • 包括三种基本结构:

    • 顺序结构:按书写顺序依次执行

    • 选择结构:根据条件选择执行路径(if-else、switch)

    • 循环结构:重复执行某段操作(for、while)

数据结构

  • 算法处理的对象和数据组织形式

  • 包括数据的类型、数据的组织形式和存储结构

  • 例如:变量、数组、链表、栈、队列等

算法的基本性质是什么

  1. 目的性

  2. 分步性

  3. 有序性

  4. 有限性

  5. 操作性

任务二:算法描述与设计

算法是什么

答: 算法就是解决问题的方法和步骤。

如何描述算法

  • 自然语言描述算法:用语言描述解决问题的过程。

    • 利用人们熟悉的自然语言

    • 表示算法的各个步骤

    • 特点:易于理解 书写繁琐,对于不确定、复杂的问题难以表达准确,不能被计算机识别和执行。

  • 流程图:是算法的图形化描述。

  • N-S描述算法

常用的流程图符号是什么

怎么画流程图

任务三:算法分析和评价

算法的复杂度是什么

算法的复杂度包括时间复杂度和空间复杂度。

算法的时间复杂度是什么

算法的时间复杂度:是衡量算法执行时间随输入规模增长而变化的度量。它用来估计算法在最坏情况下所需的时间资源。

算法的时间复杂度函数是什么

算法的时间复杂度并不是一个明确的执行时间,而是一个函数。这个函数描述了某种算法随着输入数据量的提升,执行时间随之上升的幅度。

时间复杂度通常使用符号“O” 表示算法执行时间和输入规模之间的关系。具体来说:

算法的时间复杂度描述了算法执行所需的基本操作数量,以及这些操作数量如何随着输入规模的增加而变化。

时间复杂度的分类是什么

  1. 常数时间复杂度:无论输入规模大小,算法的执行时间都保持不变。

  2. 线性时间复杂度:算法的执行时间与输入规模呈线性关系。

  3. 对数时间复杂度:算法的执行时间随着输入规模的增加而增加,但增长速度较慢。例如:二分法

  4. 平方时间复杂度:算法的执行时间随着输入规模的增加而呈平方级增加。例如:冒泡排序

  5. 指数时间复杂度:算法的执行时间随着输入规模的增加而呈指数级增长。例如:穷举搜索算法

影响算法执行时间的因素有哪些

  1. 问题中数据存储的数据结构

  2. 算法采用的数据模型

  3. 算法设计的策略

  4. 问题的规模

  5. 实现算法的程序语言

  6. 编译算法产生的机器代码质量

  7. 计算机执行指令的速度

算法的空间复杂度是什么

算法的空间复杂度S定义为该算法所耗费的存储空间。

  • 算法的空间复杂度也是问题规模N的函数。

  • 是对一个算法在运行过程中临时占用存储空间大小的量度。

算法在计算机存储器上占用的存储空间包括哪三个方面

  • 存储算法本身占用的存储空间

  • 算法的输入输出数据占用的存储空间

  • 算法在运行过程中临时占用的存储空间

算法的时间复杂度和空间复杂度的关系是什么

往往是相互影响的:

  • 追求较好的时间复杂度,会使空间复杂度性能变差

  • 追求较好的空间复杂度,会使时间复杂度性能编程

怎样才能设计出一个好的算法

  • 综合考虑算法的各项性能

  • 算法的使用频率

  • 算法处理的数据量大小

  • 算法描述语言的特性

  • 算法运行的机器系统环境

任务四:算法与程序的关系

程序的概念是什么

程序是算法用某种程序语言的具体实现。

程序不一定满足算法的五大特征。

算法与程序的关系是什么

算法是一种解决问题的方法。

程序是算法的具体实现。

算法是程序的灵魂。

任务五:典型算法举例

选择排序算法是什么

选择排序算法的思想是什么

绘制选择排序算法的流程图

冒泡排序算法是什么

冒泡排序算法的思想是什么

绘制冒泡排序算法的流程图

插入排序算法是什么

插入排序算法的思想是什么

绘制插入排序算法的流程图

递归算法是什么

递归算法的思想是什么

绘制递归算法的流程图


评论