[数据结构学习笔记23] 插入排序(Insertion Sort)

插入排序(Insertion Sort)

举例

5,       3,1,2,9,7

从第二个数字开始,也就是3开始。数列分为两部分,5,和剩下部分。5称为已排序;3-7称为未排序。这个时候3称为活动数字,我们要做的是,把3放到已排序组中。

3,5         1,2,9,7

1,3,5         2,9,7

1,2,3,5         9,7

1,2,3,5,7        9

1,2,3,5,7,9

代码(javascript)

function insertionSort(input) {
   let activeNumber;
   for (let i = 1; i < input.length; i++) {
       activeNumber = input[i];
       
        for (int j = i - 1; j >= 0; j--) {
            if (input[j] > activeNumber) {
               input[j+1] = input[j];
            } else {
               break;
            }
        }
        input[j+1] = activeNumber;
    }
}

插入排序效率也不高。时间复杂度是O(n^2)。它的优点是不需要额外的空间。

posted @ 2025-02-11 23:16  Eagle6970  阅读(10)  评论(0)    收藏  举报