Containers and Iterators
VectorInfo Class Implementation
VectorInfo Class Application
VectorInfo Class Application (cont'd)
Program Output for n = 15
Decoupling Index Handling from Loops
Decoupling Index Handling: First Try
Revised VectorInfo Class Definition
Revised VectorInfo Methods
Eliminating Index Handling Entirely
New VectorInfo Class
Trade-Offs
Possible Remedies
Iterator Classes
Class Diagram
VectorIterInfo Implementation
VectorIterInfo Example
Using Multiple Iterators
Enhancing the VectorIterInfo Class
New VectorIterInfo Class
New VectorIterInfo Methods
Original Example Again
Output
Application: quickSort
quickSort Trace
quickSort Trace (cont'd)
quickSort Trace (cont'd)
quickSort Trace (cont'd)
quickSort Trace (cont'd)
The partition Procedure
A SortInfo Class
Example Using SortInfo
Example Output
Implementing quickSort with Iterators
SortInfo::quickSort Method
SortInfo::Partition Method
SortInfo::Partition Method (cont'd)
Analysis of quickSort
Analysis of quickSort (cont'd)
Analysis of quickSort (cont'd)
Analysis of quickSort (cont'd)
Assuming Vector Values are Randomly Distributed
Assuming Vector Values are Randomly Distributed (cont'd)
Assuming Vector is Already Sorted or Nearly Sorted
Analysis of quickSort (Summary)
Efficiency Comparisons