以下は、合併と並べ替え関数です。
「JS」
    関数mergesort（arr）{
      if（arr.length <= 1）{{
        arrを返します。
      }

      const mid = math.floor（arr.length / 2）;
      const leftarr = arr.slice（0、mid）;
      const rightarr = arr.slice（mid）;

      const levelorted = mergesort（leftarr）;
      const rightsorted = mergesort（rightArr）;

      return Merge（左ソート、権利を獲得）;
    }

    関数マージ（leftarr、右アー）{
      leftindex = 0とします。
      redidex = 0とします。
      const resultArr = [];

      while（leftindex <leftarr.length && rightIndex <reagtarr.length）{
        if（leftarr [leftindex] <reagtarr [rightindex]）{{
          resultArr.push（leftarr [leftindex]）;
          leftindex ++;
        } それ以外 {
          resultArr.push（rightArr [rightIndex]）;
          rightindex ++;
        }
      }

      return resultArr.concat（leftarr.slice（leftindex））。
    }
`` `
この合併関数と並べ替え関数は、各サブアレイの長さが1に等しくなるまで再帰的な分割入力配列を使用します。次に、2つのソートされたサブ数をソートされた配列に組み合わせて、最後にこのソートアレイを返します。

配列を<code> mergesort </code>機能に渡すことができます
「JS」
    const arr = [4、2、7、1、3、5、5、6];
    const sortedarr = mergesort（arr）;
    console.log（sortedarr）; // output [1、2、3、4、5、6、7]
`` `
下面是归并排序函数：
```js
    function mergeSort(arr) {
      if (arr.length <= 1) {
        return arr;
      }

      const mid = Math.floor(arr.length / 2);
      const leftArr = arr.slice(0, mid);
      const rightArr = arr.slice(mid);

      const leftSorted = mergeSort(leftArr);
      const rightSorted = mergeSort(rightArr);

      return merge(leftSorted, rightSorted);
    }

    function merge(leftArr, rightArr) {
      let leftIndex = 0;
      let rightIndex = 0;
      const resultArr = [];

      while (leftIndex < leftArr.length && rightIndex < rightArr.length) {
        if (leftArr[leftIndex] < rightArr[rightIndex]) {
          resultArr.push(leftArr[leftIndex]);
          leftIndex++;
        } else {
          resultArr.push(rightArr[rightIndex]);
          rightIndex++;
        }
      }

      return resultArr.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex));
    }
``` 
这个归并排序函数使用了递归来拆分输入数组，直到每个子数组的长度都小于等于 1。然后，它将两个排序后的子数组合并成一个排序后的数组，最后返回这个排序后的数组。

你可以将一个数组传递给 <code>mergeSort </code>函数
```js
    const arr = [4, 2, 7, 1, 3, 5, 6];
    const sortedArr = mergeSort(arr);
    console.log(sortedArr); // 输出 [1, 2, 3, 4, 5, 6, 7]
```