This document discusses sorting algorithms. It begins by defining sorting as arranging items in a sequence. It notes that 25-50% of computing power is used for sorting activities. Common sorting applications include organizing lists of student data, test scores, and race results. Sorting methods described include selection sort, bubble sort, shell sort, and quick sort. Selection sort works by repeatedly finding the largest element and swapping it into the sorted portion of the array. Bubble sort compares adjacent elements and swaps them if out of order, pushing larger elements towards the end over multiple passes. Pseudocode and C++ code examples are provided to demonstrate how selection and bubble sort algorithms work on integer and string arrays.