/** * * 实现原理 * 将整个待排序的序列分割成若干子序列分别进行直接插入排序 */ 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 }