希尔排序

参考: https://segmentfault.com/a/1190000009461832

步骤:

function shellSort(arr) {
            var len = arr.length,
                temp,
                gap = 1;
            while(gap < len/3) {          //动态定义间隔序列
                gap = gap*3+1;
            }
            for (gap; gap > 0; gap = Math.floor(gap/3)) {
                for (var i = gap; i < len; i++) {
                    temp = arr[i];
                    for (var j = i-gap; j >= 0 && arr[j] > temp; j -= gap) {
                        arr[j+gap] = arr[j];
                    }
                    arr[j+gap] = temp;
                }
            }
            return arr;
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容