Reading
These notes and
closely review
Unit 2
Section 3.
Review quiz questions
We went over drawing the selection sort n=3 tree, and its
interesting features.
Finishing off lower bounds
We finished off our proof that for any comparison-based sorting
algorithm, the worst case running time is $\Omega(n \lg n)$.
Sorting review
We reviewed the sorting algorithms we know and their running
times: selection sort, insertion sort, merge sort, heap sort.
We also reviewed the limitations of our analysis, e.g. "is it
true that for any input array, merge sort is faster than
selection sort?". Why is the answer "no"?
Reviewing sorting
Midn X suggested an improvement to mergesort that he
hypothesized would make its best case $\Theta(\lg n)$. The
improvement is to add
if A[m] \le; A[m+1] return
to the top of "merge". When the original input is already
sorted, this will make all the merge's take constant time.
This gave us a great opportunity to analyze a recursive
algorithm. We also discussed that this hypothesis is
impossible, because any correct sorting algorithm must at least
examine every element in the array, so any sorting algorithm has
a best case running time that is $\Omega(n)$.