Search code examples
iterationrecurrence

Understanding recurrence relation


I have this recurrence relation

T(n) = T(n-1) + n, for n ≥ 2
T(1) = 1

Practice exercise: Solve recurrence relation using the iteration method and give an asymptotic running time.

So I solved it like this:

T(n) = T(n-1) + n 
        = T(n-2)  + (n - 1) + n 
        = T(n-3) + (n - 2) + (n - 1) + n 
        = … 
        = T(1) + 2 + … (n - 2) + (n - 1) + n **
        = 1 + 2 + … + (n - 2) + (n - 1) + n
        = O(n^2)

I have some questions:

1)How I can find asymptotic running time?

**2)At this state of problem T(1) means that there was n that when it was subtracted with a number it gave the result 1, right?

3)What if T(0) = 1 and what if T(2) = 1?

Edit: 4) Why n ≥ 2 is useful?

I need really to understand it for my Mid-Term test


Solution

  • T(n) = T(n-1) + n, for n ≥ 2
    T(1) = 1
    

    If T(x) represents the running time:

    You have already found the asymptotic running time, O(n^2) (quadratic).

    If the relation is changed to T(0) = 1 or T(2) = 1, then the running time is still quadratic. The asymptotic behavior does not change if you add a constant or multiply by a constant, and changing the initial condition only adds a constant to the following terms.

    n ≥ 2 is present in the relation so that T(n) is defined at exactly once for every positive n. Otherwise, both lines would apply to T(1). You cannot compute T(1) from T(0) using T(n) = T(n-1) + n. Even if you could, T(1) would be defined in two different (and potentially inconsistent) ways.