阿里云可以做几个网站,商城网站建设排名,网易企业邮箱服务,深圳前十网站扩广公司目录 1.算法的概念2.算法的特性1.有穷性2.确定性3.可行性4.输入5.输出 3.好算法的特质1.正确性2.可读性3.健壮性4.高效率与低存储需求 4.算法的时间复杂度1.事后统计的问题2.复杂度表示的计算1.加法规则2.乘法规则3.常见函数数量级比较 5.算法的空间复杂度1.程序的内存需求2.例… 目录 1.算法的概念2.算法的特性1.有穷性2.确定性3.可行性4.输入5.输出 3.好算法的特质1.正确性2.可读性3.健壮性4.高效率与低存储需求 4.算法的时间复杂度1.事后统计的问题2.复杂度表示的计算1.加法规则2.乘法规则3.常见函数数量级比较 5.算法的空间复杂度1.程序的内存需求2.例题3.函数调用递归带来的内存开销 1.算法的概念 算法(Algorithm是对特定问题求解步骤的一种描述它是指令的有限序列其中的每条指令表示一个或多个操作。 2.算法的特性
1.有穷性 一个算法必须总在执行有穷步之后结束且每一步都可在有穷时间内完成。 算法必须是有穷的而程序可以是无穷的 2.确定性 算法中每条指令必须有确切的含义对于相同的输入只能得出相同的输出。 3.可行性 算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。 4.输入 一个算法有零个或多个输入这些输入取自于某个特定的对象的集合。 5.输出 一个算法有一个或多个输出这些输出是与输入有着某种特定关系的量。 3.好算法的特质
1.正确性 算法应能够正确地解决求解问题。 2.可读性 算法应具有良好的可读性,以帮助人们理解。 3.健壮性 输入非法数据时算法能适当地做出反应或进行处理而不会产生莫名其妙的输出结果。 4.高效率与低存储需求 即算法执行省时、省内存时间复杂度低、空间复杂度低。 4.算法的时间复杂度 事前预估算法时间开销T(n)与问题规模n的关系T表示“time”) 最坏时间复杂度:最坏情况下算法的时间复杂度。平均时间复杂度:所有输入示例等概率出现的情优下算法的期望运行时间。最好时间复杂度:最好情况下算法的时间复杂度。
1.事后统计的问题 ①和机器性能有关如:超级计算机v.s.单片机 ②和编程语言有关越高级的语言执行效率越低 ③和编译程序产生的机器指令质量有关 ④有些算法是不能事后再统计的如:导弹控制算法 2.复杂度表示的计算
1.加法规则 多项相加只保留最高阶的项且系数变为1。 2.乘法规则 多项相乘都保留。 3.常见函数数量级比较 ①顺序执行的代码只会影响常数项可以忽略。 ②只需挑循环中的一个基本操作分析它的执行次数与n的关系即可。 ③如果有多层嵌套循环,只需关注最深层循环循环了几次。 5.算法的空间复杂度
1.程序的内存需求 ①若无论问题规模怎么变算法运行所需的内存空间都是固定的常量 算法空间复杂度为s(n) o(1)则称该算法为原地工作算法所需的内存空间为常量。 ②只需关注存储空间大小与问题规模相关的变量。 2.例题 3.函数调用递归带来的内存开销 一般情况空间复杂度等于递归调用的深度。 注有的算法各层函数所需存储空间不同分析方法略有区别。