This document provides an overview of sorting algorithms including selection sort, bubble sort, insertion sort, merge sort, and heapsort. It discusses the time and space complexity of each algorithm, with merge sort having the best time complexity of O(n log n). Code examples and exercises are provided to help understand how each algorithm works. The goal is to help students learn common sorting techniques needed for coding interviews and problems.