Skip to content

Commit

Permalink
add readme for insertion sort
Browse files Browse the repository at this point in the history
  • Loading branch information
saadati944 committed Feb 4, 2021
1 parent 5d7e27e commit 2366cce
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions sorting_algorithms/insertion_sort/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Insertion sort

![insertion1](https://upload.wikimedia.org/wikipedia/commons/4/42/Insertion_sort.gif)

[read more in wikipedia](https://en.wikipedia.org/wiki/Insertion_sort)

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: Jon Bentley shows a three-line C version, and a five-line optimized version
- Efficient for (quite) small data sets, much like other quadratic sorting algorithms
- More efficient in practice than most other simple quadratic (i.e., O(n2)) algorithms such as selection sort or bubble sort
- Adaptive, i.e., efficient for data sets that are already substantially sorted: the time complexity is O(kn) when each element in the input is no more than k places away from its sorted position
- 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 people manually sort cards in a bridge hand, most use a method that is similar to insertion sort.

0 comments on commit 2366cce

Please sign in to comment.