Advertisement
rishu110067

Untitled

Mar 10th, 2022
1,067
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function MergeSort(arr){
  2.   if(arr.length <= 1){
  3.     return arr;
  4.   }
  5.   helper(arr, 0, arr.length-1)
  6.   return arr;
  7. }
  8.  
  9. function helper(A, start, end){
  10.   //Based Case for Leaf Node
  11.   if(start == end){
  12.     return;
  13.   }
  14.  
  15.   //Case for Internal node worker
  16.   let mid = Math.floor((start + end) / 2);
  17.   //console.log(start, end, mid);
  18.   helper(A, start, mid);
  19.   helper(A, mid + 1, end);
  20.  
  21.   //merge two sorted half arrays
  22.   let i = start;
  23.   let j = mid + 1;
  24.  
  25.   let auxArray = new Array();
  26.  
  27.   while((i <= mid) && (j <= end)){
  28.     // console.log(A[i], A[j]);
  29.     if(A[i] <= A[j]){
  30.       auxArray.push(A[i]);
  31.       i++;
  32.     }else if(A[i] > A[j]) {
  33.       auxArray.push(A[j]);
  34.       j++
  35.     }
  36.   }
  37.    
  38.   //Append remaining items
  39.   while(i <= mid){
  40.     auxArray.push(A[i]);
  41.     i++
  42.   }
  43.   while(j <= end){
  44.     auxArray.push(A[j]);
  45.     j++;
  46.   }
  47.  
  48.   for(let k = 0; k < auxArray.length; k++){
  49.       A[start+k] = auxArray[k];
  50.   }
  51.  
  52.   return;
  53. }
  54.  
  55.  
  56. let number = [1,3,7,4]
  57. console.log(MergeSort(number))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement