solving recurrences ii coms10007 2020, lecture...

86
Solving Recurrences II COMS10007 2020, Lecture 14 Dr. John Lapinskas (substituting for Dr. Christian Konrad) March 18th 2020 John Lapinskas Lecture 14 March 18th 2020 1 / 17

Upload: others

Post on 13-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Solving Recurrences IICOMS10007 2020, Lecture 14

Dr. John Lapinskas(substituting for Dr. Christian Konrad)

March 18th 2020

John Lapinskas Lecture 14 March 18th 2020 1 / 17

Page 2: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The recursion tree method

This lecture we’ll ignore O-notation and divisibility issues, and focus onexamples of the recurrences themselves. Consider the recurrence

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Step 1: Use the recursion tree method to get a good guess at a solution.

As with the mergesort analysis, we view this as a tree.

Each recursive invocation corresponds to a child node — so the root hasthree children, each of which has three children, and so on.

Each node gets labelled with the non-recursive running time at that step,and then T (n) is the sum of all the labels in the tree.

John Lapinskas Lecture 14 March 18th 2020 2 / 17

Page 3: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 3T (16) + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 4: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 3T (16) + 32 = 9T (4) + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 5: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 9T (4) + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 6: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1

[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 9T (4) + 3 · 8 + 32 = 27T (1) + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 7: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1

[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27T (1) + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 8: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27T (1) + 9 · 2 + 3 · 8 + 32 = 27 · 1 + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 9: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27 · 1 + 9 · 2 + 3 · 8 + 32 = 101.

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 10: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The general case

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n

n/4

n/16

1[All 1’s]

n2

n8

n8

n8

n32

n32

n32

n32

n32

n32

n32

n32

n32

......

......

Except for the bottom, level i has 3i−1 nodes, each with cost n/(2 · 4i−1).

Let #(levels) = t. Then n/4t−1 = 1, so we have t = 1 + log4 n.

John Lapinskas Lecture 14 March 18th 2020 4 / 17

Page 11: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The general case

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n

n/4

n/16

1[All 1’s]

n2

n8

n8

n8

n32

n32

n32

n32

n32

n32

n32

n32

n32

......

......

Except for the bottom, level i has 3i−1 nodes, each with cost n/(2 · 4i−1).Let #(levels) = t. Then n/4t−1 = 1, so we have t = 1 + log4 n.

John Lapinskas Lecture 14 March 18th 2020 4 / 17

Page 12: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 13: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 14: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1

≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 15: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i

=n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 16: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1)

= O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 17: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 18: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n

= 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 19: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n)

= 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 20: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4)

= nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 21: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4)

= o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 22: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 23: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 24: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 25: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 26: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 27: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 28: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 29: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2

= Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 30: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 31: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 32: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 33: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 34: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 35: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.

Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 36: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 37: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2

=

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 38: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 39: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2

= O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 40: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 41: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 42: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 43: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 44: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 45: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 46: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 47: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2

= Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 48: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 49: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 50: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 51: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 52: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 53: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√

n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 54: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√

n/3i−1.Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 55: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n

=√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 56: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 57: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1

=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 58: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j

= Θ(( 2√

3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 59: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 60: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n

=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 61: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2

=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 62: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2

= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 63: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 64: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 65: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 66: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 67: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 68: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 69: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 70: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 71: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n.

..which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 72: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 73: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 74: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 75: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 76: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 77: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 78: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 79: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 80: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 81: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 82: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 83: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 84: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The Master Theorem (non-examinable!)

The Master Theorem: Suppose T (1) = O(1) and, for n > 1,T (n) = aT (n/b) + f (n) for some constants a, b > 0 and some functionf : N→ R. Let ξ = logb a be the critical exponent. Then:

1 If f (n) = O(nξ−ε) for some ε > 0, then T (n) = Θ(nξ).In other words, the leaves dominate.

2 If f (n) = Θ(nξ), then T (n) = Θ(nξ log n).In other words, the levels are roughly equal.

3 If f (n) = Ω(nξ+ε) for some ε > 0 and af (n/b) = O(f (n)), thenT (n) = Θ(f (n)). In other words, the root dominates.

The condition af (n/b) = O(f (n)) in the last case always holds when f isa polynomial in n, but rules out weird cases like

f (n) =

n if n is odd,

n2 if n is even.

John Lapinskas Lecture 14 March 18th 2020 16 / 17

Page 85: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The Master Theorem (non-examinable!)

The Master Theorem: Suppose T (1) = O(1) and, for n > 1,T (n) = aT (n/b) + f (n) for some constants a, b > 0 and some functionf : N→ R. Let ξ = logb a be the critical exponent. Then:

1 If f (n) = O(nξ−ε) for some ε > 0, then T (n) = Θ(nξ).In other words, the leaves dominate.

2 If f (n) = Θ(nξ), then T (n) = Θ(nξ log n).In other words, the levels are roughly equal.

3 If f (n) = Ω(nξ+ε) for some ε > 0 and af (n/b) = O(f (n)), thenT (n) = Θ(f (n)). In other words, the root dominates.

The condition af (n/b) = O(f (n)) in the last case always holds when f isa polynomial in n, but rules out weird cases like

f (n) =

n if n is odd,

n2 if n is even.

John Lapinskas Lecture 14 March 18th 2020 16 / 17

Page 86: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Next time:Christian’s triumphant return!∗

*Return may not be triumphant or even physical, rules and restrictions apply.

John Lapinskas Lecture 14 March 18th 2020 17 / 17