希尔排序算法


/**
 * 希尔排序,对数组进行了等间隔的分组处理,在每一组中作插入排除
 * [7,6,3,9,2,1]
 * [7,9] [6,2][3,1]
 * 
 * 
 * 
 * 
 * 
 */
const shell = function(arr){
  let gap = Math.floor(arr.length/2);
  while(gap>0){
    for(var i=0;i0 && arr[j-1]>temp){
        arr[j] = arr[j-1];
        j--
      }
      arr[j] = temp    
    }
    gap = Math.floor(gap/2)
  }
  return arr;
}

const arr = [9,2,8,11,7,99,33,0,77,22,1,77]
console.log(shell(arr))

你可能感兴趣的:(算法与数据结构,排序算法,算法)