任务三:算法分析和评价
算法的复杂度是什么
算法的复杂度包括时间复杂度和空间复杂度。
算法的时间复杂度是什么
算法的时间复杂度:是衡量算法执行时间随输入规模增长而变化的度量。它用来估计算法在最坏情况下所需的时间资源。
算法的时间复杂度函数是什么
算法的时间复杂度并不是一个明确的执行时间,而是一个函数。这个函数描述了某种算法随着输入数据量的提升,执行时间随之上升的幅度。
时间复杂度通常使用符号“O” 表示算法执行时间和输入规模之间的关系。具体来说:
算法的时间复杂度描述了算法执行所需的基本操作数量,以及这些操作数量如何随着输入规模的增加而变化。
时间复杂度的分类是什么
常数时间复杂度:无论输入规模大小,算法的执行时间都保持不变。
线性时间复杂度:算法的执行时间与输入规模呈线性关系。
对数时间复杂度:算法的执行时间随着输入规模的增加而增加,但增长速度较慢。例如:二分法
平方时间复杂度:算法的执行时间随着输入规模的增加而呈平方级增加。例如:冒泡排序
指数时间复杂度:算法的执行时间随着输入规模的增加而呈指数级增长。例如:穷举搜索算法
影响算法执行时间的因素有哪些
问题中数据存储的数据结构
算法采用的数据模型
算法设计的策略
问题的规模
实现算法的程序语言
编译算法产生的机器代码质量
计算机执行指令的速度
算法的空间复杂度是什么
算法的空间复杂度S定义为该算法所耗费的存储空间。
算法的空间复杂度也是问题规模N的函数。
是对一个算法在运行过程中临时占用存储空间大小的量度。
算法在计算机存储器上占用的存储空间包括哪三个方面
存储算法本身占用的存储空间
算法的输入输出数据占用的存储空间
算法在运行过程中临时占用的存储空间
算法的时间复杂度和空间复杂度的关系是什么
往往是相互影响的:
追求较好的时间复杂度,会使空间复杂度性能变差
追求较好的空间复杂度,会使时间复杂度性能编程
怎样才能设计出一个好的算法
综合考虑算法的各项性能
算法的使用频率
算法处理的数据量大小
算法描述语言的特性
算法运行的机器系统环境
###