## What it is

It‘s a simple to implement sorting algorithm. In a nutshell, **Insertion Sort** iterates twice through the array. First iteration corresponds to the target position, whilst second iteration is for comparison with future elements. Every time the current item is smaller than the comparison value, it is inserted in the current position and first iteration moves forward.

## When to use it

not very efficient for large data sets, but quite efficiente and powerful for small ones. It can avoid confusion by not changing the order of equal set of keys.

tsconst insertionSort = (unsortedList: []) {// First iteration:// get the target positionfor (let i = 1; i < unsortedList.length; i++) {const currentItem = unsortedList[i]let j// Second iteration:// compare elements, assign each to new sorted positionfor (j = i; j > 0 && currentItem < unsortedList[j - 1]; j--) {unsortedList[j] = unsortedList[j - 1]}unsortedList[j] = currentItem}return unsortedList}

## Shameless plug

I have a personal playground where I plan to implement some Computer Science basics in JavaScript. With good test coverage and some insights on when/why to use each concept. Check out my insertion sort implementation at the FUNdamentals repository.