This document discusses different sorting algorithms and their running times. It introduces comparison sorts like insertion sort, merge sort, and quicksort. Counting sort is described as a non-comparison sort that runs in O(n+k) time where k is the range of the values. Radix sort is also described as non-comparison sort that takes O(dn) time where d is the number of digits in the input values. Randomized selection is presented as a way to find the kth smallest element in expected O(n) time using randomization in the partition step of quicksort.