The document describes two sorting algorithms: quicksort and heapsort. Quicksort is a divide and conquer algorithm that works by selecting a pivot element and partitioning the array around it, recursively sorting the subarrays. The performance depends on how well balanced the partitions are. Heapsort uses a binary heap data structure to sort an array in-place. It works by building a max heap from the array and then removing elements from the heap one by one.