Skip to content

Instantly share code, notes, and snippets.

@swathiPaipalle
Last active September 21, 2017 05:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swathiPaipalle/54c6fcec3cda40689a02ac787de26970 to your computer and use it in GitHub Desktop.
Save swathiPaipalle/54c6fcec3cda40689a02ac787de26970 to your computer and use it in GitHub Desktop.
Merge Sort using Javascript// source http://jsbin.com/horevudure
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Merge Sort using Javascript">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div>
<h1>Merge sort using Javascript</h1>
<small>Merge sort is divide and conquer Algotithm</small><br>
<strong>Works as follows</strong>
<ul>
<li>Divide the unsorted list in to n sublists, each containing 1 element</li>
<li>Repeatedly merge the sublists to produce sorted list, until only one sublist is remaining. Which is a so
</ul>
</div>
<script id="jsbin-javascript">
function mergeSort(arr){
if(arr.length < 2){
return arr;
}
var mid = Math.floor(arr.length/2);
var left = arr.slice(0, mid);
var right = arr.slice(mid);
return merge(mergeSort(left), mergeSort(right));
}
function merge(left, right){
var array = [];
while(left.length && right.length){
if(left[0] < right[0]){
array.push(left.shift());
}else{
array.push(right.shift());
}
}
return array.concat(left.slice(), right.slice());
}
var arr = [2,5,1,3,6,4,8,7,9,0];
console.log(mergeSort(arr));
</script>
<script id="jsbin-source-javascript" type="text/javascript">function mergeSort(arr){
if(arr.length < 2){
return arr;
}
var mid = Math.floor(arr.length/2);
var left = arr.slice(0, mid);
var right = arr.slice(mid);
return merge(mergeSort(left), mergeSort(right));
}
function merge(left, right){
var array = [];
while(left.length && right.length){
if(left[0] < right[0]){
array.push(left.shift());
}else{
array.push(right.shift());
}
}
return array.concat(left.slice(), right.slice());
}
var arr = [2,5,1,3,6,4,8,7,9,0];
console.log(mergeSort(arr));
</script></body>
</html>
function mergeSort(arr){
if(arr.length < 2){
return arr;
}
var mid = Math.floor(arr.length/2);
var left = arr.slice(0, mid);
var right = arr.slice(mid);
return merge(mergeSort(left), mergeSort(right));
}
function merge(left, right){
var array = [];
while(left.length && right.length){
if(left[0] < right[0]){
array.push(left.shift());
}else{
array.push(right.shift());
}
}
return array.concat(left.slice(), right.slice());
}
var arr = [2,5,1,3,6,4,8,7,9,0];
console.log(mergeSort(arr));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment