Sorting is a process of ordering data elements in a sequence according to some criteria. There are two main categories of sorting: internal sorting, where all the data fits in memory, and external sorting, where some data must be stored externally like on a hard disk. Sorting algorithms can also be classified as stable or unstable based on whether they preserve the original order of equal elements. Some common sorting algorithms are bubble sort, selection sort, and insertion sort. The divide and conquer method breaks problems down into smaller sub-problems, solves those independently, and then combines the solutions.