算法 01-算法及算法分析

算法及其特性

1.算法Algorithm:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

2.算法的五个基本特性:输入Input、输出Output、有穷性Finiteness、确定性Definiteness可行性Effectiveness
2.1 确定性在此处指每种运算必须有确切的定义,不能有二义性;
2.2 可行性在此处指算法的每一步都必须是可行的,每一步都能通过执行有限次数完成。

3.计算过程:只满足输入、输出、确定性和可行性,不一定能终止。

4.一个好的算法:正确性Correctness、可读性Readability、健壮性Robustness、效率Efficiency。
4.1 健壮性在此处指当输入数据不合法时,算法也能做出相应的处理,而不是产生异常或莫名其妙的结果。

5.算法的描述:自然语言、流程图、编程语言、伪代码。

算法分析

1.衡量一个算法效率的方法:事前分析估计方法、事后统计方法。

2.算法的执行时间:基本语句重复执行的次数,是问题规模的函数。

3.算法的时间复杂度:T(n)=O(f(n))。表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。
3.1 递归求解斐波那契数列的时间复杂度为指数级;
3.2 分治算法的时间复杂度为O(nlogn);
3.3 如果一个算法用常数时间将问题的大小削减为其一部分(如1/2),那么该算法的时间复杂度为对数阶,如果使用常数时间只是把问题减少为一个常数的数量(如-1),那么这种算法的时间复杂度就是线性阶的。

4.算法的空间复杂度:算法所需的存储空间,指算法在执行过程中的最大存储量需求。

posted @ 2021-01-03 17:11  埃利安里  阅读(130)  评论(0)    收藏  举报