The document describes the bubble sort, merge sort, and quick sort algorithms. Bubble sort has a time complexity of O(n^2) as it may require up to n^2 comparisons in the worst case. Merge sort has a time complexity of O(nlogn) as it divides the list into halves recursively until single elements remain, then merges the sorted halves. Quick sort also has O(nlogn) time as it partitions the list around a pivot element, recursively sorts sublists, and merges the results.