Use the right arrow key to go through insertion sort step-by-step.
Either use the default data provided, or enter your own below.
const data = [10, 6, 1, 7, 11, 5]; // outer loop // start with 1 index and work your way up // the value at this index is the value to be sorted for (let i = 1; i < data.length; i++) { // cache value to be sorted const valueToSort = data[i]; // inner loop // start with outer loop index and work your way down // looking for index at which to insert value to be sorted // break out of inner loop after this value has been inserted for (let j = i; j > -1; j--) { // if inner loop has reached 0 index // or if preceding value is less than value to be sorted // insert value to be sorted at this index if (j === 0 || data[j - 1] < valueToSort) { data[j] = valueToSort; break; } // else take value at preceding index // and shift it to inner loop index else data[j] = data[j - 1]; } }