The document discusses two sorting algorithms: insertion sort and shellsort. Insertion sort works by repeatedly building a sorted subset by taking elements from the unsorted set and inserting them into the sorted place. Shellsort improves on insertion sort by comparing elements farther apart. It works by making multiple passes with smaller increments to shift elements into place until adjacent elements are sorted. Both algorithms have quadratic runtime but insertion sort is simpler while shellsort is faster for medium sized lists. Examples are provided to demonstrate how each algorithm sorts a sample list.