SOURCE

/**
 * 
 * 实现原理
 * 将整个待排序的序列分割成若干子序列分别进行直接插入排序
 */

function shellSort(arr){
    let len = arr.length
    for(let gap=Math.floor(len/2);gap>0;gap=Math.floor(gap/2)){
        for(let i=gap;i<len;i++){
            let j = i
            let current = arr[i]
            while(j-gap >= 0 && current < arr[j - gap]){
                arr[j] = arr[j -gap]
                j = j - gap
            }
            arr[j] = current
        }
    }
    return arr
}
console 命令行工具 X clear

                    
>
console