[Algorithms] Sort an Array with a Nested for Loop using Insertion Sort in JavaScript

Posted Answer1215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Algorithms] Sort an Array with a Nested for Loop using Insertion Sort in JavaScript相关的知识,希望对你有一定的参考价值。

nsertion sort is another sorting algorithm that closely resembles how we might sort items in the physical world. We start at the second item in our collection and make the assumption that this item is a sorted list of length 1. We then compare all the items before it and determine if it needs to be "inserted" to the left or right of our item. We then move onto the second item, again comparing it to every item before it in the list, inserting those items correctly.

Because this algorithm requires two loops, one inside the other, the worst case scenario of our algorithm still requires a time complexity of O(n^2). This is also an inefficient sorting algorithm, but if our list is mostly sorted already, it will perform a slight bit better than bubble sort.

 

function insertionSort (array) {
    let i = 0
    let j = 0

    for (i = 1; i < array.length; i++) {
        for (j = 0; j < i; j++) {
            if (array[i] < array[j]) {
                const [item] = array.splice(i, 1); // get the item on ith position
                array.splice(j, 0, item);// insert the item on jth position
            }
        }
    }

    return array;
}

let numbers = [10, 5, 6, 3, 2, 8, 9, 4, 7, 1]

console.log(insertionSort(numbers))

  

以上是关于[Algorithms] Sort an Array with a Nested for Loop using Insertion Sort in JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

Basic Sort Algorithms

Algorithms - Merging Sort

Algorithms - Selection Sort

Algorithms - Insertion Sort - 插入排序

Algorithms - Bucket Sort - 桶排序

Algorithms - Bucket Sort - 桶排序