Merge Sort

Enter unsorted array
0.   let sorted = merge_sort(array);
1.   function merge_sort(array)
2.   {
3.       let n = array.length;
4.       if (n == 1)
5.       {
6.           return array;
7.       }
8.       let left = array.slice(0, parseInt(n / 2));
9.       let right = array.slice(parseInt(n / 2), n);
10.       left = merge_sort(left);
11.       right = merge_sort(right);
12.       return(merge(left, right));
13.   }
14.   function merge(left, right)
15.   {
16.       let sorted = [];
17.       let i = 0, j = 0;
18.       while(i < left.length && j < right.length)
19.       {
20.           if(left[i] > right[j])
21.           {
22.               sorted.push(right[j]);
23.               j += 1
24.           }
25.           else if(left[i] < right[j])
26.           {
27.               sorted.push(left[i]);
28.               i += 1;
29.           }
30.           else
31.           {
32.               sorted.push(left[i]);
33.               sorted.push(right[j]);
34.               i += 1; j += 1;
35.           }
36.       }
37.       while(i < left.length)
38.       {
39.           sorted.push(left[i]);
40.           i += 1;
41.       }
42.       while(j < right.length)
43.       {
44.           sorted.push(right[j]);
45.           j += 1;
46.       }
47.       return sorted;
48.   }