如何使用 JavaScript 实现归并排序? - 项越资源网-html css js 用法分享社区-开发交流-项越资源网

如何使用 JavaScript 实现归并排序?

/* 如何使用 JavaScript 实现归并排序? */
function mergeSort(arr) {
  var len = arr.length;
  if (len < 2) {
    return arr;
  }
  var middle = Math.floor(len / 2),
    left = arr.slice(0, middle),
    right = arr.slice(middle);
  return merge(mergeSort(left), mergeSort(right));
}
function merge(left, right) {
  var result = [];
  while (left.length && right.length) {
    if (left[0] <= right[0]) {
      result.push(left.shift());
    } else {
      result.push(right.shift());
    }
  }
  while (left.length)
    result.push(left.shift());
  while (right.length)
    result.push(right.shift());
  return result;
}
请登录后发表评论

    没有回复内容