This document provides an overview of sorting algorithms. It defines sorting as arranging data in a particular order like ascending or descending. Common sorting algorithms discussed include bubble sort, selection sort, insertion sort, merge sort, and quick sort. For each algorithm, the working method, implementation in C, time and space complexity is explained. The document also covers sorting terminology like stable vs unstable sorting and adaptive vs non-adaptive algorithms. Overall, the document serves as a comprehensive introduction to sorting and different sorting techniques.