Comb sort iterates through the array comparing elements that are separated by a certain distance. The distance begins with the first and last element, then shrinks on each iteration until neighboring elements are comapred, and the sort is complete.

Insertion sort iterates through the array, and removes the selected element, then inserts it into the correct location in the sorted portion of the array.

Similar to Insertion Sort, however it finds the correct location for the element by doing a binary search rather than checking every location in the sorted portion of the array.

Bubble sort iteratively compares neighboring elements and swaps them if necessary. It then repeats until no swaps are performed. One optimization is realizing that the last checked element on any pass will be in the correct location and therefore can be skipped on the next pass.

Merge Sort breaks the array into smaller units, starting with pairs of elements and sorts them. From there it sorts while merging adjacent units. It repeats this until there is only a single 'unit' left which is the complete, sorted array.

Quicksort works by selecting a 'pivot' element from the array and partitioning the other elements into two sub-arrays, according to whether they are less than or greater than the pivot which are then sorted recursively. This can be done in-place.