Monday, November 16, 2015

Merge Sort in JavaScript

A simple program that I wrote using JavaScript as my programming language that demonstrate Merge Sort algorithm.

If you  have some questions please send me an email at jake.r.pomperada@gmail.com and jakerpomperada@yahoo.com

My mobile number here in the Philippines is 09173084360.



Sample Program Output


Program Listing

<html>
 <head>
   <title> Merge Sort </title>
  </head>
<body> 
   <script>

   var values=[];
   var a=0,b=0;
   
   document.write("<font face='arial' size='4'>MERGE SORT </font>");
   document.write("<br><br>");
 for (a=0; a<10; a++) {
  values.push(Number(prompt("Enter item value at no. " + (a+1))));
   }
      document.write("<font face='arial' size='4'>Numbers");
     document.write(" given by the user </font>");
     document.write("<br><br>");
  for (a=0;a<10; a++) {
    document.write("<font face='arial' size='4'> " +values[a] + "");
   }
  
  function merge(left, right, arr) {
  var a = 0;

  while (left.length && right.length) {
    arr[a++] = (right[0] < left[0]) ? right.shift() : left.shift();
  }
  while (left.length) {
    arr[a++] = left.shift();
  }
  while (right.length) {
    arr[a++] = right.shift();
  }
}

function mSort(arr, tmp, len) {
  if (len === 1) { 
  return; 
}

  var m = Math.floor(len / 2),
      tmp_l = tmp.slice(0, m),
      tmp_r = tmp.slice(m);

  mSort(tmp_l, arr.slice(0, m), m);
  mSort(tmp_r, arr.slice(m), len - m);
  merge(tmp_l, tmp_r, arr);
}

function merge_sort(arr) {
  mSort(arr, arr.slice(), arr.length);
}

 merge_sort(values); 
 
      document.write("<br><br>");
 document.write("<font face='arial' size='4'>Sorted List of Numbers </font>");
 document.write("<br><br>");
  for (a=0; a<10; a++) {
    document.write("<font face='arial' size='4'> " +  values[a]+"</font>");
  }  
  
  </script>
  </body>
 </html>  

   

No comments:

Post a Comment