js算法排序-希尔排序

2019-10-30  本文已影响0人  小猪佩奇的王子
/**
 * 希尔排序
 * 是插入排序的高级写法,对列表按一定间隔做等距离分组处理,每一组进行插入排序
 * 然后逐次对间隔减半,直到为1
 * @param {*} arr
 */
function shellSort(arr) {
    var length = arr.length
    for (
        var gap = Math.floor(arr.length / 2);
        gap > 0;
        gap = Math.floor(gap / 2)
    ) {
        for (var i = gap; i < length; i++) {
            for (var j = 0; j < i; j++) {
                if (arr[i] < arr[j]) {
                    var temp = arr[j]
                    arr[j] = arr[i]
                    arr[i] = temp
                }
            }
        }
    }
    console.log(arr)
}
// shellSort(arr)
上一篇 下一篇

猜你喜欢

热点阅读