AliasT
3/29/2018 - 1:17 PM

shell-sort.js

function shellSort(elements) {
  const n = elements.length
  let step, i, j;

  for(step = Math.floor(n / 2); step > 0; step = Math.floor(step / 2) ) {
    for(i = step; i < n; i++) {
      cur = elements[i]
      for(j = i; j >= step; j-= step) {
        if(cur < elements[j-step]) {
          elements[j] = elements[j-step]
        } else {
          break
        }
      }
      elements[j] = cur
    }
  }
}