I am trying to understand the differences between Insertion Sort and Selection Sort.
They both seem to have two components: an unsorted list and a sorted list. They both seem to take one element from the unsorted list and put it into the sorted list at the proper place. I have seen some sites/books saying that selection sort does this by swapping one at a time while insertion sort simply finds the right spot and inserts it. However, I have seen other articles say something, saying that insertion sort also swaps. Consequently, I am confused. Is there any canonical source?
Given a list, take the current element and exchange it with the smallest element on the right hand side of the current element.
Given a list, take the current element and insert it at the appropriate position of the list, adjusting the list every time you insert. It is similar to arranging the cards in a Card game.
Time Complexity of selection sort is always n(n - 1)/2
, whereas insertion sort has better time complexity as its worst case complexity is n(n - 1)/2
. Generally it will take lesser or equal comparisons then n(n - 1)/2
.
Source: http://cheetahonfire.blogspot.com/2009/05/selection-sort-vs-insertion-sort.html