js归并排序实现

 let arr = [3,4,2,8,1,1,2,2,3,3,4,5];
     
      const merge = function(L,M,R) {
          let arr2=[];
          let i=0;
          let p1 = L;
          let p2 = M+1;
          while(p1<=M&&p2<=R) {
              arr2[i++] = arr[p1]>=arr[p2]?arr[p1++]:arr[p2++];
          }
          while(p1<=M) {
              arr2[i++] = arr[p1++];
          }
          while(p2<=R) {
              arr2[i++] = arr[p2++];
          }
          for(i =0;i<arr2.length;i++) {
              arr[L+i] = arr2[i];
          }
      }

      const mergeSort = function(L,R) {
          if(L === R) {
              return;
          }
          let mid = L + ((R-L)>>1);
          mergeSort(L,mid);
          mergeSort(mid+1,R)
          return merge(L,mid,R);
      }
posted @   ajajaz  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示