There are several common sorting algorithms: - Insertion sort is simple and in-place but slow, with O(n^2) time complexity. It builds up a sorted array from the start by inserting elements. - Merge sort divides the array into smaller sorted runs and then merges them back together, requiring additional memory but with optimal O(n log n) time. - Quicksort uses a pivot element and partitions the array into sub-arrays, recursively sorting them. It has O(n log n) average time and can be done in-place. - Heapsort uses a heap data structure represented as an array to sort in O(n log n) time by repeatedly extracting the maximum element