算法题(1):牛客NC140(直接插入排序)

82 阅读1分钟

直接插入排序

1.插入排序(Insertion-Sort)

将一个数据插入到已经排序好的有序序列中,从而得到新增一个数据的有序序列

2.图解

6d867acd56e40fb32975f9e91d041fa9.png

3.题目要求

屏幕截图 2022-07-07 231847.png

4.代码(js)

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 将给定数组排序
 * @param arr int整型一维数组 待排序的数组
 * @return int整型一维数组
 */
function MySort( arr ) {
    // write code here
    let temp=0
    for(let i=1;i<arr.length;i++){
        while(arr[i]<arr[i-1]){
            temp=arr[i]
            arr[i]=arr[i-1]
            arr[i-1]=temp
            i--
        }
    }
    return arr
}
module.exports = {
    MySort : MySort
};

5.复杂度

5.1时间复杂度

最坏(逆序):O(n^2)

最好(正序):O(n)

平均复杂度:O(n^2)

空间复杂度

O(1)