The document describes several sorting and selection algorithms, including insertion sort, partition, quicksort, random quicksort, counting sort, radix sort, and random select. Insertion sort works by inserting each element into the sorted portion of the array, partition divides the array around a pivot element, and quicksort uses partition to recursively sort subarrays. Counting sort counts occurrences of each value instead of comparing elements, and radix sort extends counting sort to multiple digits. Random select finds the kth smallest element by randomly partitioning the array.