Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. However, insertion sort provides several advantages:
- Simple implementation
- Efficient for (quite) small data sets
- Adaptive (i.e., efficient) for data sets that are already substantially sorted: the time complexity is O(n + d), where d is the number of inversions
- More efficient in practice than most other simple quadratic (i.e., O(n2)) algorithms such as selection sort or bubble sort; the best case (nearly sorted input) is O(n)
- Stable; i.e., does not change the relative order of elements with equal keys
- In-place; i.e., only requires a constant amount O(1) of additional memory space
- Online; i.e., can sort a list as it receives it
When humans manually sort something (for example, a deck of playing cards), most use a method that is similar to insertion sort.
Read more about Insertion Sort: Algorithm, Best, Worst, and Average Cases, Comparisons To Other Sorting Algorithms, Variants
Famous quotes containing the word sort:
“Impenetrable in their dissimulation, cruel in their vengeance, tenacious in their purposes, unscrupulous as to their methods, animated by profound and hidden hatred for the tyranny of manit is as though there exists among them an ever-present conspiracy toward domination, a sort of alliance like that subsisting among the priests of every country.”
—Denis Diderot (17131784)