0% found this document useful (0 votes)
291 views105 pages

MAD101 Chap4

This chapter covers topics related to induction and recursion including mathematical induction, strong induction, well-ordering, recursive definitions, and structural induction. It provides examples of applying these techniques to prove properties about sums, divisibility, inequalities, and other statements for all positive integers.

Uploaded by

Anagram Swipe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
291 views105 pages

MAD101 Chap4

This chapter covers topics related to induction and recursion including mathematical induction, strong induction, well-ordering, recursive definitions, and structural induction. It provides examples of applying these techniques to prove properties about sums, divisibility, inequalities, and other statements for all positive integers.

Uploaded by

Anagram Swipe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 105

Discrete Mathematics

Chapter 4: Induction and Recursions

Department of Mathematics
The FPT university

TrungDT (FUHN) MAD101 Chapter 4 1 / 18


Chapter 4: Introduction

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

4.1 Mathematical Induction

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

4.1 Mathematical Induction


4.2 Strong Induction and Well-Ordering

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

4.1 Mathematical Induction


4.2 Strong Induction and Well-Ordering
4.3 Recursive Definitions and Structural Induction

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

4.1 Mathematical Induction


4.2 Strong Induction and Well-Ordering
4.3 Recursive Definitions and Structural Induction
4.4 Recursive Algorithms

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


Chapter 4: Introduction

Topics covered:

4.1 Mathematical Induction


4.2 Strong Induction and Well-Ordering
4.3 Recursive Definitions and Structural Induction
4.4 Recursive Algorithms
4.5 Program Correctness

TrungDT (FUHN) MAD101 Chapter 4 2 / 18


4.1 Mathematical Induction

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

1: Prove that P(1) is true.

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

1: Prove that P(1) is true.


2: (Inductive hypothesis) Assume that P(k) is true for some positive
integer k.

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

1: Prove that P(1) is true.


2: (Inductive hypothesis) Assume that P(k) is true for some positive
integer k.
3: Prove that P(k + 1) is true.

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

1: Prove that P(1) is true.


2: (Inductive hypothesis) Assume that P(k) is true for some positive
integer k.
3: Prove that P(k + 1) is true.
4: Conclusion: P(n) is true for all positive integers n.

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


4.1 Mathematical Induction

Problem. Prove that the statement P(n) is true for all n = 1, 2, . . .

Proof by Induction:

1: Prove that P(1) is true.


2: (Inductive hypothesis) Assume that P(k) is true for some positive
integer k.
3: Prove that P(k + 1) is true.
4: Conclusion: P(n) is true for all positive integers n.

TrungDT (FUHN) MAD101 Chapter 4 3 / 18


TrungDT (FUHN) MAD101 Chapter 4 4 / 18
Example 1. Prove that for all positive integers n we have
n(n + 1)(2n + 1)
12 + 2 2 + 3 2 + · · · + n 2 =
6

TrungDT (FUHN) MAD101 Chapter 4 4 / 18


Example 1. Prove that for all positive integers n we have
n(n + 1)(2n + 1)
12 + 2 2 + 3 2 + · · · + n 2 =
6
Example 2. Prove that n3 − n is divisible by 6 for all integers n ≥ 1.

TrungDT (FUHN) MAD101 Chapter 4 4 / 18


Example 1. Prove that for all positive integers n we have
n(n + 1)(2n + 1)
12 + 2 2 + 3 2 + · · · + n 2 =
6
Example 2. Prove that n3 − n is divisible by 6 for all integers n ≥ 1.

Example 3. Prove that 2n > n2 for all integers n > 4.

TrungDT (FUHN) MAD101 Chapter 4 4 / 18


Example 1. Prove that for all positive integers n we have
n(n + 1)(2n + 1)
12 + 2 2 + 3 2 + · · · + n 2 =
6
Example 2. Prove that n3 − n is divisible by 6 for all integers n ≥ 1.

Example 3. Prove that 2n > n2 for all integers n > 4.

Example 4. Let n be a positive integer. Prove that every checkerboard of


size 2n × 2n with one square removed can be titled by triominoes.

TrungDT (FUHN) MAD101 Chapter 4 4 / 18


4.2 Strong Induction and Well-Ordering

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.


2: (Induction hypothesis) Assume that P(1), P(2), . . . , P(k) are all true
for some k ≥ 1.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.


2: (Induction hypothesis) Assume that P(1), P(2), . . . , P(k) are all true
for some k ≥ 1.
3: Prove that P(k + 1) is also true.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.


2: (Induction hypothesis) Assume that P(1), P(2), . . . , P(k) are all true
for some k ≥ 1.
3: Prove that P(k + 1) is also true.
4: Conclusion: P(n) is true for all positive integers n.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.


2: (Induction hypothesis) Assume that P(1), P(2), . . . , P(k) are all true
for some k ≥ 1.
3: Prove that P(k + 1) is also true.
4: Conclusion: P(n) is true for all positive integers n.

Example 1. Prove that every integer greater than 1 can be written as a


product of primes.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


4.2 Strong Induction and Well-Ordering

Problem. Prove that P(n) is true for all n = 1, 2, . . .

Proof by Strong Induction.

1: Prove that P(1) is true.


2: (Induction hypothesis) Assume that P(1), P(2), . . . , P(k) are all true
for some k ≥ 1.
3: Prove that P(k + 1) is also true.
4: Conclusion: P(n) is true for all positive integers n.

Example 1. Prove that every integer greater than 1 can be written as a


product of primes.

Example 2. Prove that every postage of 12 cents or more can be formed


using only 4-cent and 5-cent stamps.

TrungDT (FUHN) MAD101 Chapter 4 5 / 18


Well-Ordering

TrungDT (FUHN) MAD101 Chapter 4 6 / 18


Well-Ordering

The validity of the Principle of Mathematical Induction follows from the


Well-Ordering property of the set of non-negative integers.

TrungDT (FUHN) MAD101 Chapter 4 6 / 18


Well-Ordering

The validity of the Principle of Mathematical Induction follows from the


Well-Ordering property of the set of non-negative integers.
Well-Ordering

TrungDT (FUHN) MAD101 Chapter 4 6 / 18


Well-Ordering

The validity of the Principle of Mathematical Induction follows from the


Well-Ordering property of the set of non-negative integers.
Well-Ordering
Any nonempty set of non-negative integers has a least element.

TrungDT (FUHN) MAD101 Chapter 4 6 / 18


4.3 Recursive Definitions and Structural Induction

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

F0 = 0, F1 = 1,

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

F0 = 0, F1 = 1, and

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

F0 = 0, F1 = 1, and
Fn = Fn−1 + Fn−2 for n = 2, 3, . . ..

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

F0 = 0, F1 = 1, and
Fn = Fn−1 + Fn−2 for n = 2, 3, . . ..

This definition is called recursive definition.

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


4.3 Recursive Definitions and Structural Induction

The Fibonacci {Fn }, n = 1, 2, . . . is defined as follows:

F0 = 0, F1 = 1, and
Fn = Fn−1 + Fn−2 for n = 2, 3, . . ..

This definition is called recursive definition.

TrungDT (FUHN) MAD101 Chapter 4 7 / 18


TrungDT (FUHN) MAD101 Chapter 4 8 / 18
Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

(a) xn = 7 ∗ 5n+1

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

(a) xn = 7 ∗ 5n+1
(b) xn = n!

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

(a) xn = 7 ∗ 5n+1
(b) xn = n!
(c) xn = (−1)n

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

(a) xn = 7 ∗ 5n+1
(b) xn = n!
(c) xn = (−1)n
(d) xn = 2n − 6

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Example 1. Find the nth term of the sequence {xn } defined by recursive
definition:

(a) x1 = 5, xn = 3xn−1 for n = 2, 3, . . .


(b) x0 = 2, xn = xn−1 + 1 for n = 1, 2, . . .

Example 2. Give a recursive definition for the sequence {xn }, n = 1, 2 . . .


whose nth term is:

(a) xn = 7 ∗ 5n+1
(b) xn = n!
(c) xn = (−1)n
(d) xn = 2n − 6

TrungDT (FUHN) MAD101 Chapter 4 8 / 18


Recursively Defined Sets and Structures

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S
Recursive step: If x, y ∈ S then x + y ∈ S

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S
Recursive step: If x, y ∈ S then x + y ∈ S

Example 2.

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S
Recursive step: If x, y ∈ S then x + y ∈ S

Example 2.

(a) Give a recursive definition for the set of positive integers that are not
divisible by 3

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S
Recursive step: If x, y ∈ S then x + y ∈ S

Example 2.

(a) Give a recursive definition for the set of positive integers that are not
divisible by 3
(b) Give a recursive definition for the set of integers that are not divisible
by 3

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


Recursively Defined Sets and Structures

Example 1. Determine the set S defined by:

Basic step: 3 ∈ S
Recursive step: If x, y ∈ S then x + y ∈ S

Example 2.

(a) Give a recursive definition for the set of positive integers that are not
divisible by 3
(b) Give a recursive definition for the set of integers that are not divisible
by 3

TrungDT (FUHN) MAD101 Chapter 4 9 / 18


TrungDT (FUHN) MAD101 Chapter 4 10 / 18
Example 3. Recursive definition for the set of full binary trees.

TrungDT (FUHN) MAD101 Chapter 4 10 / 18


Example 3. Recursive definition for the set of full binary trees.

Basic step: A single vertex is a full binary tree.

TrungDT (FUHN) MAD101 Chapter 4 10 / 18


Example 3. Recursive definition for the set of full binary trees.

Basic step: A single vertex is a full binary tree.


Recursive step: If T1 and T2 are two full binary trees then there is a
full binary tree, denoted by T1 .T2 , consisting of a root r together
with edges connecting this root to the root of the left subtree T1 and
the root of the right subtree T2 .

TrungDT (FUHN) MAD101 Chapter 4 10 / 18


Example 3. Recursive definition for the set of full binary trees.

Basic step: A single vertex is a full binary tree.


Recursive step: If T1 and T2 are two full binary trees then there is a
full binary tree, denoted by T1 .T2 , consisting of a root r together
with edges connecting this root to the root of the left subtree T1 and
the root of the right subtree T2 .

TrungDT (FUHN) MAD101 Chapter 4 10 / 18


TrungDT (FUHN) MAD101 Chapter 4 11 / 18
Example 4. Give a recursive definition for:

TrungDT (FUHN) MAD101 Chapter 4 11 / 18


Example 4. Give a recursive definition for:

(a) Leaves of full binary trees.

TrungDT (FUHN) MAD101 Chapter 4 11 / 18


Example 4. Give a recursive definition for:

(a) Leaves of full binary trees.


(b) Height of full binary trees.

TrungDT (FUHN) MAD101 Chapter 4 11 / 18


Example 4. Give a recursive definition for:

(a) Leaves of full binary trees.


(b) Height of full binary trees.

TrungDT (FUHN) MAD101 Chapter 4 11 / 18


Structural Induction

TrungDT (FUHN) MAD101 Chapter 4 12 / 18


Structural Induction

Let S be a set defined recursively.

TrungDT (FUHN) MAD101 Chapter 4 12 / 18


Structural Induction

Let S be a set defined recursively. To prove that a property P is true for


all elements of S we can use structural induction.

TrungDT (FUHN) MAD101 Chapter 4 12 / 18


Structural Induction

Let S be a set defined recursively. To prove that a property P is true for


all elements of S we can use structural induction.

Basic step: Prove that P is true for elements of S defined in the basic
step.

TrungDT (FUHN) MAD101 Chapter 4 12 / 18


Structural Induction

Let S be a set defined recursively. To prove that a property P is true for


all elements of S we can use structural induction.

Basic step: Prove that P is true for elements of S defined in the basic
step.
Recursive step: Show that if the property P is true for the elements
used to construct new elements in the recursive step of the definition
of S, then the property P is also true for these new elements.

TrungDT (FUHN) MAD101 Chapter 4 12 / 18


TrungDT (FUHN) MAD101 Chapter 4 13 / 18
Example 1.

TrungDT (FUHN) MAD101 Chapter 4 13 / 18


Example 1. Let T be a full binary tree with the number of vertices n(T )
and the number of leaves l(T ). Prove that n(T ) = 2l(T ) − 1.

TrungDT (FUHN) MAD101 Chapter 4 13 / 18


Example 1. Let T be a full binary tree with the number of vertices n(T )
and the number of leaves l(T ). Prove that n(T ) = 2l(T ) − 1.

Example 2. Let T be a full binary tree with the number of vertices n(T )
and the height h(T ). Prove that n(T ) ≤ 2h(T )+1 − 1.

TrungDT (FUHN) MAD101 Chapter 4 13 / 18


Example 1. Let T be a full binary tree with the number of vertices n(T )
and the number of leaves l(T ). Prove that n(T ) = 2l(T ) − 1.

Example 2. Let T be a full binary tree with the number of vertices n(T )
and the height h(T ). Prove that n(T ) ≤ 2h(T )+1 − 1.

TrungDT (FUHN) MAD101 Chapter 4 13 / 18


Generalized Induction

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


Generalized Induction

Example.

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


Generalized Induction

Example.

Given the sequence {am,n } defined recursively as follows:

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


Generalized Induction

Example.

Given the sequence {am,n } defined recursively as follows:

a0,0 = 0, and

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


Generalized Induction

Example.

Given the sequence {am,n } defined recursively as follows:

a0,0 = 0,
 and
am−1,n + 1 if n = 0 và m > 0,
am,n =
am,n−1 + n if n > 0

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


Generalized Induction

Example.

Given the sequence {am,n } defined recursively as follows:

a0,0 = 0,
 and
am−1,n + 1 if n = 0 và m > 0,
am,n =
am,n−1 + n if n > 0

Prove that am,n = m + n(n + 1)/2 for all m, n ≥ 0.

TrungDT (FUHN) MAD101 Chapter 4 14 / 18


4.4 Recursive Algorithms

TrungDT (FUHN) MAD101 Chapter 4 15 / 18


4.4 Recursive Algorithms

An algorithm is called recursive if it solves a problem by reducing it to an


instance of the same problem with smaller input

TrungDT (FUHN) MAD101 Chapter 4 15 / 18


4.4 Recursive Algorithms

An algorithm is called recursive if it solves a problem by reducing it to an


instance of the same problem with smaller input

Example 1. A recursive algorithm that computes 5n for n ≥ 0.

TrungDT (FUHN) MAD101 Chapter 4 15 / 18


4.4 Recursive Algorithms

An algorithm is called recursive if it solves a problem by reducing it to an


instance of the same problem with smaller input

Example 1. A recursive algorithm that computes 5n for n ≥ 0.

Procedure power (n: non-negative)


if n = 0 then power (0) := 1
else power (n) := power (n − 1) ∗ 5

TrungDT (FUHN) MAD101 Chapter 4 15 / 18


TrungDT (FUHN) MAD101 Chapter 4 16 / 18
Example 2. Write a recursive algorithm to compute n!.

TrungDT (FUHN) MAD101 Chapter 4 16 / 18


Example 2. Write a recursive algorithm to compute n!.

Example 3. Write a recursive algorithm to compute the greatest common


divisor of two non-negative integers.

TrungDT (FUHN) MAD101 Chapter 4 16 / 18


Example 2. Write a recursive algorithm to compute n!.

Example 3. Write a recursive algorithm to compute the greatest common


divisor of two non-negative integers.

Example 4. Express the linear search algorithm by a recursive procedure .

TrungDT (FUHN) MAD101 Chapter 4 16 / 18


Example 2. Write a recursive algorithm to compute n!.

Example 3. Write a recursive algorithm to compute the greatest common


divisor of two non-negative integers.

Example 4. Express the linear search algorithm by a recursive procedure .

Example 5. Express the binary search algorithm by a recursive procedure.

TrungDT (FUHN) MAD101 Chapter 4 16 / 18


Example 2. Write a recursive algorithm to compute n!.

Example 3. Write a recursive algorithm to compute the greatest common


divisor of two non-negative integers.

Example 4. Express the linear search algorithm by a recursive procedure .

Example 5. Express the binary search algorithm by a recursive procedure.

TrungDT (FUHN) MAD101 Chapter 4 16 / 18


Recursion and Iteration

TrungDT (FUHN) MAD101 Chapter 4 17 / 18


Recursion and Iteration

Problem. Write a recursive algorithm and an iteration algorithm to


compute the nth Fibonacci number, and compare their complexity via the
number of additions used.

TrungDT (FUHN) MAD101 Chapter 4 17 / 18


Recursion and Iteration

Problem. Write a recursive algorithm and an iteration algorithm to


compute the nth Fibonacci number, and compare their complexity via the
number of additions used.

TrungDT (FUHN) MAD101 Chapter 4 17 / 18


Recursion and Iteration

Problem. Write a recursive algorithm and an iteration algorithm to


compute the nth Fibonacci number, and compare their complexity via the
number of additions used.
Procedure Iterative Fib (n)
if n = 0 then y := 0
else
x:=0
y:=1
for i := 1 to n − 1 do
z:=x+y
x:=y
y:=z
Print(y )

TrungDT (FUHN) MAD101 Chapter 4 17 / 18


Recursion and Iteration

Problem. Write a recursive algorithm and an iteration algorithm to


compute the nth Fibonacci number, and compare their complexity via the
number of additions used.
Procedure Iterative Fib (n) Procedure Fib (n)
if n = 0 then y := 0 if n = 0 then Fib(0) := 0
else else if n = 1 then Fib(1) := 1
x:=0 else
y:=1 Fib(n) := Fib(n − 1) + Fib(n − 2)
for i := 1 to n − 1 do
z:=x+y
x:=y
y:=z
Print(y )

TrungDT (FUHN) MAD101 Chapter 4 17 / 18


Merge Sort Algorithm

TrungDT (FUHN) MAD101 Chapter 4 18 / 18


Merge Sort Algorithm

Procedure mergesort (L = a1 , a2 , . . . , an )
if n > 1 then
m := bn/2c
L1 = a1 , a2 , . . . , am
L2 = am+1 , am+2 , . . . , an
L := merge(mergesort(L1 ), mergersort(L2 ))
Print (L)

TrungDT (FUHN) MAD101 Chapter 4 18 / 18


Merge Sort Algorithm

Procedure mergesort (L = a1 , a2 , . . . , an )
if n > 1 then
m := bn/2c
L1 = a1 , a2 , . . . , am
L2 = am+1 , am+2 , . . . , an
L := merge(mergesort(L1 ), mergersort(L2 ))
Print (L)

Theorem

TrungDT (FUHN) MAD101 Chapter 4 18 / 18


Merge Sort Algorithm

Procedure mergesort (L = a1 , a2 , . . . , an )
if n > 1 then
m := bn/2c
L1 = a1 , a2 , . . . , am
L2 = am+1 , am+2 , . . . , an
L := merge(mergesort(L1 ), mergersort(L2 ))
Print (L)

Theorem
The number of comparisons needed to merge sort a list of n elements is
O(n log n).

TrungDT (FUHN) MAD101 Chapter 4 18 / 18

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy