算法 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.算法的空间复杂度:算法所需的存储空间,指算法在执行过程中的最大存储量需求。

浙公网安备 33010602011771号