• 技术文章 >Web开发 >JavaScript

    js如何合并两个有序数组

    小妮浅浅小妮浅浅2021-10-12 17:38:55原创169

    1、新建空数组res存储最终排序后的数组。

    2、比较两个有序数组的头部,年轻人出队推进res。

    3、如果两个数组仍然值得,重复第二步。

    实例

    Array.prototype.mergeSort = function () {
      const rec = (arr) => {
        if (arr.length === 1) {
          return arr;
        }
        const mid = Math.floor(arr.length / 2);
        const left = arr.slice(0, mid);
        const right = arr.slice(mid, arr.length);
        const orderLeft = rec(left);
        const orderRight = rec(right);
        const res = [];
        while (orderLeft.length || orderRight.length) {
          if (orderLeft.length && orderRight.length) {
            res.push(
              orderLeft[0] < orderRight[0] ? orderLeft.shift() : orderRight.shift()
            );
          } else if (orderLeft.length) {
            res.push(orderLeft.shift());
          } else if (orderRight.length) {
            res.push(orderRight.shift());
          }
        }
        return res;
      };
      const res = rec(this);
      res.forEach((n, i) => {
        this[i] = n;
      });
    };
     
    const arr = [5, 4, 3, 2, 1];
    arr.mergeSort();

    以上就是js合并两个有序数组的方法,希望对大家有所帮助。更多js学习指路:js教程

    专题推荐:js数组
    品易云
    上一篇:js中二分搜索的使用 下一篇:JavaScript冒泡排序的实现

    相关文章推荐

    • js数组去重并升序• js数组排序方法sort• js数组过滤方法• js数组求和函数• js数组使用es6遍历方法• js数组添加数据push方法• js数组求i到j的和• js数组遍历map方法• js数组求和reduce• js数组以及对象合并总结• js数组中对象怎么合并总结• js数组在头部或尾部插入元素的方法• js数组如何拼接全部元素• js数组根据下标删除元素的方法• JS数组计算元素总和的方法• JS数组判断元素是否满足给定条件• js数组元素进行排序

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网