Sale!

# Homework 2 ECE 345 Algorithms and Data Structures

\$30.00

Category:
Rate this product

ECE 345– Homework 2
Homework 2
ECE 345 Algorithms and Data Structures

• All page numbers are from 2009 edition of Cormen, Leiserson, Rivest and Stein.
• For each algorithm you asked to design you should give a detailed description of the idea,
proof of algorithm correctness, termination, analysis of time and space complexity. If not,
your answer will be incomplete and you will miss credit. You are allowed to refer to pages in
the textbook.
• Do not write C code! When asked to describe an algorithm give analytical pseudocode.
• Read the handout with the instructions on how to submit your Homework online.
Failure to adhere to those instructions may disqualify you and you may receive a
mark of zero on your HW.
• Write clearly, if we cannot understand what you write you may not get credit for the question.
number(s) on the front page!
• No Junk Clause: For any question, if you don’t know the answer, you may write “I DON’T
KNOW” in order to receive 20% of the marks.
1. [Search, 15 points] You are given a set S of n real numbers where for each element
x ∈ S, 1 < |x| < 10. You are also given a black box that returns true if there is some combination (x, y, z) ∈ S such that x · y = z. Devise an algorithm where you can determine whether
there exists (x, y, z) ∈ S such that x · y + z = 0. Assuming the black box runs in constant time,
the algorithm should run in O(n) time.
(Hint: Construct a set S
0
so that the following holds: there exist x
0
, y0
, z0 ∈ S
0
such that
x
0
· y
0 = z
0
if and only if there exist a, b, c ∈ S such that x · y + z = 0.)
2. [Search, 15 points] Say the black box from the previous question returns only z. Write an
O(n log n) algorithm to find x and y. In other words, given a set S with n real numbers and
a number z, write an O(n log n) algorithm to find (x, y) ∈ S such that x · y = z.
3. [Sorting, 10 points]
You are given a sorted array with n distinct integers. Suddenly, the elements randomly change
value. Each element either increases by 2, decreases by 2, or stays the same. Describe a way to
sort this list again (by the element’s new values) in O(n) time, using comparison-based sorting.
UofToronto–ECE 345–Fall, 2020 2 Homework 2
4. [Sorting, 15 points]
You are given a sorted sequence of distinct integers {a1, a2, a3, . . . , an}. Give an O(log n) time
algorithm to determine whether or not there exists an index i such that ai = i (e.g. {−2, 2, 3, 6}
contains such an index: a3 = 3).
5. [Sorting in Linear Time, 10 points] For each of the below scenarios, choose the better