《数据结构:邓俊辉版》——递归

1、递归求和

int sum(int szArray[], int nIndex, int nLen)
{
    if (nIndex == nLen - 1)
    {
        return szArray[nIndex];
    }
    return szArray[nIndex] + sum(szArray, nIndex + 1, nLen);
}

int sum2(int szArray[], int n)
{
    if (n == 0)
    {
        return 0 ;
    }
    return szArray[n - 1] + sum2(szArray, n - 1);
}

2、递归求幂指数

int power2(int n)
{
    if (0 == n)
        return 1;
    return 2 * power2(n - 1);
}

优化:时间复杂度降低

int sqr(int a)
{
    return a * a;
}

int opt_power2(int n)
{
    if (0 == n)
        return 1;
    return (n % 2 == 1) ? 2 * sqr(opt_power2(n / 2)) : sqr(opt_power2(n / 2));
}

猜你喜欢

转载自www.cnblogs.com/predator-wang/p/11762656.html
今日推荐