```Chapter 14 is about "Divide and conquer".

Project work:
OrderedVector, treeSort, quickSort, heapsort, Radix sort.
http://www.csci.csusb.edu/dick/cs330/Projects/project4.htm

Section 14.1 Binary searches:  standard stuff
Finding roots
Safer than Newton on wriggly functions.
Faster searches?

14.2 Ordered vector:  What is an iterator?
typedef vector<T>::iterator iterator;
is my guess at a missing line at the top of page 334.
Perhaps in other code as well...

14.3 Balanced trees:
Maintaining perfect balance is expensive.
AVL trees are nearly balanced.
Rotation:  You need to recall the name of the idea not the code.
Notice: 2 mirror image rotations + 2 combined ones.
Cool animation of AVL and other trees:
http://www.seanet.com/users/arsen/avltree.html

In practice: Use the STL set/map/...
If you don't have a library that does it:
Search the internet
Go find a text book and look it up
In the final:  I won't ask you to demo a rotation.. but no the idea!

14.4 TreeSort: project page 346.
There are simpler version of treeSort.
Balance is the complication
In practice use the STL to get balanced trees.
In the project: use the STL and trim Budd's code.

14.5 Pivoting
I tend to call this partitioning:-(  Error in project4 requirements.
Test function 'pivot' very carefully.
It has a subtle bug....(*evil laughter*)
There are simpler versions.
Lomuto
http://ftp.csci.csusb.edu/dick/cs330/SourceCode/quicksort.c
An invariant or two would help correctness and understanding.
For example: Values relative to pivot:
[=][...<=...][...?...][...>...]
^            ^        ^       ^
start        low      high    stop
Errata page 350, 353, ....

Quicksort:  uses partitioning/pivoting.
http://ftp.csci.csusb.edu/dick/cs330/SourceCode/quickSort.cpp
Typically fast, sometimes slow.
Anecdote from Bentley's "Programming Pearls"

More sorts to come.  Next Chapter 15 pt1
```