Comparison Sort Summary

When to use each comparison-based sort.

SortTime (avg)Time (worst)SpaceStable
SelectionO(n2)O(n^2)O(n2)O(n^2)O(1)O(1)No
InsertionO(n2)O(n^2)O(n2)O(n^2)O(1)O(1)Yes
MergeO(nlogn)O(n \log n)O(nlogn)O(n \log n)O(n)O(n)Yes
QuickO(nlogn)O(n \log n)O(n2)O(n^2)O(logn)O(\log n)No

Use insertion sort for small arrays or nearly-sorted data. Use merge sort when stability matters or you need guaranteed O(nlogn)O(n \log n). Use quicksort for general purpose (with randomization).