This document discusses various sorting algorithms and their time complexities, including linear-time sorting algorithms. It introduces counting sort, which can sort in O(n) time when the range of input values is small. Radix sort is then presented as a generalization of counting sort that can sort integers in linear time by sorting based on individual digit positions. Bucket sort is also discussed as another linear-time sorting algorithm when inputs are uniformly distributed.