The document discusses analyzing the average case runtime of quicksort. It shows that:
1) The average case runtime of quicksort is O(n log n) due to partitions being randomly balanced on average.
2) This is proved rigorously by modeling quicksort as alternating best and worst case partitions, showing the cost is absorbed by subsequent partitions.
3) A recurrence is written and solved to formally prove the average case runtime is O(n log n).