任务一:算法的定义与特性
算法的概念是什么
算法指在解决问题时,按照某种机械的步骤一定可以得到问题的结果的处理过程。
算法就是计算机解决问题的过程。
解决问题的思路:推理实现的算法。
编写算法:操作实现的算法
算法的三要素是什么
操作
算法中执行的各种基本动作
包括算术运算、逻辑运算、关系运算、数据传输等
例如:赋值、加减乘除、比较、输入输出等
控制结构
控制算法中各操作执行的顺序
包括三种基本结构:
顺序结构:按书写顺序依次执行
选择结构:根据条件选择执行路径(if-else、switch)
循环结构:重复执行某段操作(for、while)
数据结构
算法处理的对象和数据组织形式
包括数据的类型、数据的组织形式和存储结构
例如:变量、数组、链表、栈、队列等
算法的基本性质是什么
目的性
分步性
有序性
有限性
操作性
任务二:算法描述与设计
算法是什么
答: 算法就是解决问题的方法和步骤。
如何描述算法
自然语言描述算法:用语言描述解决问题的过程。
利用人们熟悉的自然语言
表示算法的各个步骤
特点:易于理解 书写繁琐,对于不确定、复杂的问题难以表达准确,不能被计算机识别和执行。
流程图:是算法的图形化描述。
N-S描述算法
常用的流程图符号是什么
怎么画流程图
任务三:算法分析和评价
算法的复杂度是什么
算法的复杂度包括时间复杂度和空间复杂度。
算法的时间复杂度是什么
算法的时间复杂度:是衡量算法执行时间随输入规模增长而变化的度量。它用来估计算法在最坏情况下所需的时间资源。
算法的时间复杂度函数是什么
算法的时间复杂度并不是一个明确的执行时间,而是一个函数。这个函数描述了某种算法随着输入数据量的提升,执行时间随之上升的幅度。
时间复杂度通常使用符号“O” 表示算法执行时间和输入规模之间的关系。具体来说:
算法的时间复杂度描述了算法执行所需的基本操作数量,以及这些操作数量如何随着输入规模的增加而变化。
时间复杂度的分类是什么
常数时间复杂度:无论输入规模大小,算法的执行时间都保持不变。
线性时间复杂度:算法的执行时间与输入规模呈线性关系。
对数时间复杂度:算法的执行时间随着输入规模的增加而增加,但增长速度较慢。例如:二分法
平方时间复杂度:算法的执行时间随着输入规模的增加而呈平方级增加。例如:冒泡排序
指数时间复杂度:算法的执行时间随着输入规模的增加而呈指数级增长。例如:穷举搜索算法
影响算法执行时间的因素有哪些
问题中数据存储的数据结构
算法采用的数据模型
算法设计的策略
问题的规模
实现算法的程序语言
编译算法产生的机器代码质量
计算机执行指令的速度
算法的空间复杂度是什么
算法的空间复杂度S定义为该算法所耗费的存储空间。
算法的空间复杂度也是问题规模N的函数。
是对一个算法在运行过程中临时占用存储空间大小的量度。
算法在计算机存储器上占用的存储空间包括哪三个方面
存储算法本身占用的存储空间
算法的输入输出数据占用的存储空间
算法在运行过程中临时占用的存储空间
算法的时间复杂度和空间复杂度的关系是什么
往往是相互影响的:
追求较好的时间复杂度,会使空间复杂度性能变差
追求较好的空间复杂度,会使时间复杂度性能编程
怎样才能设计出一个好的算法
综合考虑算法的各项性能
算法的使用频率
算法处理的数据量大小
算法描述语言的特性
算法运行的机器系统环境
任务四:算法与程序的关系
程序的概念是什么
程序是算法用某种程序语言的具体实现。
程序不一定满足算法的五大特征。
算法与程序的关系是什么
算法是一种解决问题的方法。
程序是算法的具体实现。
算法是程序的灵魂。