Next: About this document
Fundamental Algorithms, Spring 1998
Assignment 3. Heapsort and quicksort.
Given February 4, due Monday, February 16.
- 1.
-
The quick select selects the largest x fraction of the elements of an
array in O(n) time for an array of size n. Here x is a number
between 0 and 1. Now, suppose there are k such numbers
and we want to move the elements of
the array a so that the fraction comes first, then the ,
and so on. For example, suppose k=9, , , and so on.
We want the array reordered so that the top of the numbers come
first, then the second , and so on. Within these groups,
the numbers need not be sorted. Find an algorithm based on the
quick select idea that is better than sorting if 1 << k << n.
- 2.
-
(from CLR, page 151) Give an algorithm to merge k
sorted lists into a single sorted list of length n. Hint:
Make a heap of the largest element of each of the k sublists not
yet merged into the final list.
- 3.
-
Given an array of length n, not in order, we want to determine whether
any two elements are the same. The algorithm must use only binary
comparisons. Is it possible to do this using fewer than
comparisons or equality tests? We know that it is not possible to sort
this list in fewer than comparisons.
Jonathan Goodman
Wed Feb 4 18:44:43 EST 1998