w3resource

JavaScript: Marge sort - recursion

JavaScript Function: Exercise-9 with Solution

Write a merge sort program in JavaScript.

Sample array : [34,7,23,32,5,62]
Sample output : [5, 7, 23, 32, 34, 62]

Pictorial Presentation:

JavaScript: Marge sort - recursion

Sample Solution:-

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Merge sort - recursion</title>
</head>
<body>

</body>
</html>

JavaScript Code:

Array.prototype.merge_Sort = function () {
  if (this.length <= 1) 
  {
    return this;
  }

  var half = parseInt(this.length / 2);
  var left = this.slice(0, half).merge_Sort();
  var right = this.slice(half,     this.length).merge_Sort();
  var merge = function (left, right) 
  {
  var arry = [];
  while (left.length > 0 && right.length > 0)
  {
    arry.push((left[0] <= right[0]) ? left.shift() : right.shift());
  }
    return arry.concat(left).concat(right);
  };

  return merge(left, right);
};

var a = [34,7,23,32,5,62];
console.log(a.merge_Sort());

Output:

[5,7,23,32,34,62]

Flowchart:

Flowchart: JavaScript recursion function- Marge sort - recursion

Live Demo:

See the Pen javascript-recursion-function-exercise-9 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program for binary search.
Next:Check a string for palindromes using recursion.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

JavaScript: Tips of the Day

Shorten an array using its length property

A great way of shortening an array is by redefining its length property.

let array = [0, 1, 2, 3, 4, 5, 6, 6, 8, 9]
array.length = 4
// Result: [0, 1, 2, 3]

Important to know though is that this is a destructive way of changing the array. This means you lose all the other values that used to be in the array.

Ref: https://bit.ly/2LBj213