JavaScript希尔排序简单介绍

快乐打工仔 分类:实例代码

JavaScript希尔排序简单介绍属于前端实例代码,有关更多实例代码大家可以查看

本文介绍JavaScript中的希尔排序。

下面是一段代码实例,给出排序原理,代码实例:

function shellSort(list){
  var gap=Math.floor(list.length/2);
  while(gap>0){
    for(i=gap;i<list.length;i++){
      temp=list[i];
      for(j=i;j>=gap&&list[j-gap]>temp;j-=gap){
        list[j]=list[j-gap];
       }
       list[j]=temp;
     }
     gap=Math.floor( gap / 2 );
   }
   return list;
}
var theArray=[2,1,3,12,5,66,23,87,15,32];
console.log(shellSort(theArray));

实现原理:

先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt < dt-l< … < d2 < d1),即所有记录放在同一组中进行直接插入排序为止。

JavaScript希尔排序简单介绍,这样的场景在实际项目中还是用的比较多的,关于JavaScript希尔排序简单介绍就介绍到这了。

回复

我来回复
  • 暂无回复内容