This document discusses two sorting algorithms: insertion sort and quicksort. Insertion sort builds a sorted array one item at a time by inserting each item into the correct position in a sorted prefix. Quicksort uses divide and conquer by partitioning the array around a pivot value and recursively sorting the subarrays. The quicksort algorithm is generally faster than insertion sort for large arrays but risks stack overflow errors.