js实现插入排序

130 阅读1分钟

写在前面

插入排序是将序列看做已排序部分和未排序部分,起始已排序部分为第一个元素,后面的元素为未排序部分,循环未排序部分,将其插入到已排序部分,每一趟循环已排序部分长度加一,未排序部分长度减一。

代码

function insertSort(arr) {
    //遍历未排序部分
    for (let i = 1,l=arr.length; i<l; i++){
        //比较当前未排序的元素和已排序部分所有元素大小
        for(let j=0;j<i;j++){
             //若小于某个已排序元素,则将其插入到已排序元素之前。
            if(arr[i]<arr[j]){
                let temp = arr[i] //保存当前未排序元素
                // 已排序元素要被插入的那个位置之后的元素整体右移
                for(let n = i;n>j;n--){
                    arr[n] = arr[n-1]
                }
                arr[j] = temp
            }
        }
    }
    return arr
}