算法分析__递归跟踪

                                                算法分析__递归跟踪

 

 

一、定义

检查每个递归实例,累计所需时间(调用语句本身,计入对应的子实例),其总和即算法执行时间。

 

二、程序分析

 

最基本:线性递归

问题描述:给出一个长度为n的整数数组,统计数组各元素的和。

解题代码:

int sum(int A[],int n)
{
	return (n<1)?0:sum(A,n-1)+A[n-1];
}

算法分析__递归跟踪_第1张图片

本例中,共有n+1个递归实例,每个递归实例只需O(1)时间,因此 T(n)=O(1)*(n+1)=O(n)

 

三、特点

直观形象,仅适用于简明的递归模式。

你可能感兴趣的:(算法分析__递归跟踪)