This preview shows page 1. Sign up to view the full content.
Fall Semester 2008 CS300 Algorithms
Homework #4 (due 10/23)
1. Quick Sort is not a stable sorting algorithm. However if the key in
A
(
i
) is changed to
A
(
i
)
*
n
+
i

1 then it can be stable. (
n
is the number of elements in
A
)
(a) Show that Quick Sort can be a stable sorting algorithm using this transformation.
(b) After sorting, what transformation will restore the keys back to their original values?
2.
Insertion sort on small arrays in merge sort
Although merge sort runs in
O
(
n
lg
n
) worstcase time and insertion sort runs in
O
(
n
2
)
worst case time, the constant factors in insertion sort make it faster for small
n
. Thus, it
makes sense to use insertion sort within merge sort when subproblems become suﬃciently
small. Consider a modiﬁcation to merge sort in which
n/k
sublists of length
k
are sorted
using insertion sort and then merged using the standard merging mechanism, where
k
is
a value to be determined.
(a) Show that the
This is the end of the preview. Sign up
to
access the rest of the document.
This note was uploaded on 02/04/2010 for the course COMPUTER S cs300 taught by Professor Unkown during the Spring '08 term at Korea Advanced Institute of Science and Technology.
 Spring '08
 Unkown
 Algorithms, Quick Sort

Click to edit the document details