Shorthand Description (only useful if you already know the processes)
swap elements, until greatest at end. mark sorted. loop. if no swaps occur, stop.
find greatest element, swap with beginning index. iterate index. do until end.
good for small amounts of data; *normally unstable bc will replace b with B if B is biggest in rest of list, have to replace swap with insert
|Tree sort||yes||nlog(n)||nlog(n)||n^2||no||no||builds bst, performs in order traversal||n^2 when unbalanced|
|Heap sort||yes||nlog(n)||nlog(n)||nlog(n)||no||no||build min/max heap, remove until all nodes gone.||heap often represented in array when doing this sort|
|Quick sort||yes||nlog(n)||nlog(n)||n^2||yes||no||pick pivot, elements go below and above. repeat on partitions recursively.||n^2 when data is pre-sorted|
divide list of elements into sublists of size 1. merge sublists together recursively.
|Counting sort||no||n||n||n||no||yes||count number of each element and put into array. loop through array.||works for numbers only|
distribute elements into buckets. then sort buckets using another sorting algorithm.
|similar to radix sort. works for huge datasets.|
|Radix sort||no||n||n||n||no||yes||sort based on rightmost character. then sort w character to left. repeat.||works for equal length sequences. usually strings or numbers.|