|
5 | 5 | *@param {number[]} nums
|
6 | 6 | *@return {number[]}
|
7 | 7 | */
|
8 |
| -varsortArray=function(nums){ |
| 8 | +constsortArray=function(nums){ |
| 9 | +returnmergeSort(0,nums.length-1,nums); |
| 10 | +}; |
| 11 | + |
| 12 | +constmergeSort=(left,right,nums)=>{ |
| 13 | + |
| 14 | +if(left===right)returnnums; |
9 | 15 |
|
10 |
| -constmerge=(left,mid,right)=>{ |
11 |
| -constarr1=nums.slice(left,mid+1); |
12 |
| -constarr2=nums.slice(mid+1,right+1); |
13 |
| - |
14 |
| -letp1=0; |
15 |
| -letp2=0; |
16 |
| -letgp=left; |
| 16 | +constmid=Math.floor((left+right)/2); |
| 17 | +mergeSort(left,mid,nums); |
| 18 | +mergeSort(mid+1,right,nums); |
| 19 | +returnmerge(left,right,mid,nums); |
| 20 | +} |
17 | 21 |
|
18 |
| -while(p1<arr1.length&&p2<arr2.length){ |
19 |
| -if(arr1[p1]<arr2[p2]){ |
20 |
| -nums[gp]=arr1[p1]; |
21 |
| -p1++; |
22 |
| -}else{ |
23 |
| -nums[gp]=arr2[p2]; |
24 |
| -p2++; |
25 |
| -} |
26 |
| -gp++; |
27 |
| -} |
| 22 | +constmerge=(left,right,mid,nums)=>{ |
| 23 | +constarr1=nums.slice(left,mid+1); |
| 24 | +constarr2=nums.slice(mid+1,right+1); |
| 25 | + |
| 26 | +letp1=0; |
| 27 | +letp2=0; |
| 28 | +letgp=left; |
28 | 29 |
|
29 |
| -while(p1<arr1.length){ |
| 30 | +while(p1<arr1.length&&p2<arr2.length){ |
| 31 | +if(arr1[p1]<arr2[p2]){ |
30 | 32 | nums[gp]=arr1[p1];
|
31 | 33 | p1++;
|
32 |
| -gp++; |
33 |
| -} |
34 |
| - |
35 |
| -while(p2<arr2.length){ |
| 34 | +}else{ |
36 | 35 | nums[gp]=arr2[p2];
|
37 | 36 | p2++;
|
38 |
| -gp++; |
39 | 37 | }
|
40 |
| -returnnums; |
41 |
| -} |
42 |
| - |
43 |
| -constmergeSort=(left,right)=>{ |
| 38 | +gp++; |
| 39 | +} |
44 | 40 |
|
45 |
| -if(left===right)returnnums; |
46 |
| - |
47 |
| -constmid=Math.floor((left+right)/2); |
48 |
| -mergeSort(left,mid); |
49 |
| -mergeSort(mid+1,right); |
50 |
| -returnmerge(left,mid,right); |
| 41 | +while(p1<arr1.length){ |
| 42 | +nums[gp]=arr1[p1]; |
| 43 | +p1++; |
| 44 | +gp++; |
51 | 45 | }
|
52 | 46 |
|
53 |
| -returnmergeSort(0,nums.length-1); |
54 |
| -}; |
| 47 | +while(p2<arr2.length){ |
| 48 | +nums[gp]=arr2[p2]; |
| 49 | +p2++; |
| 50 | +gp++; |
| 51 | +} |
| 52 | +returnnums; |
| 53 | +} |