1.代码:
function shellSort(arr)
{
var helf = parseInt(arr.length / 2); //这个是根据其长度来划分间隔
for(let d = helf;d>=1;d=parseInt(d/2))//每次排序完之后,间隔都是原来的一半,但是间隔要大于或者等于1
{
for(let i =d;i<arr.length;i++) //从间隔处开始判断
{
for(let j = i -d;j>=0;j-=d) //根据对应的间隔顺序,来进行排序
{
if(arr[j+d]<arr[j])
{
let temp = arr[j+d];
arr[j+d] =arr[j];
arr[j] = temp;
}
}
}
}
return arr;
}
var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
var b = shellSort(arr);
for(let i=0;i<b.length;i++)
{
console.log(b[i]);
}
2.具体结果: