Skip to content

Instantly share code, notes, and snippets.

@cbdavide
Last active May 17, 2016 16:03
Show Gist options
  • Save cbdavide/1a16ed53769568257a7481f8994253ad to your computer and use it in GitHub Desktop.
Save cbdavide/1a16ed53769568257a7481f8994253ad to your computer and use it in GitHub Desktop.
Merge sort algorithm in javascript
var merge_sort = function(array, b, e){
if(b < e) {
var m = Math.floor((b + e) / 2);
//Recursive stuff
merge_sort(array, b, m);
merge_sort(array, m+1, e);
//Merge stuff
var lower = [],
higher = [];
var i = 0,
j = 0,
k = b;
for( ; k <= m; k++, i++)
lower[i] = array[k];
for( ; k <= e; k++, j++)
higher[j] = array[k];
i = 0;
j = 0;
k = b;
while(i < lower.length && j < higher.length){
if(lower[i] < higher[j])
array[k++] = lower[i++];
else
array[k++] = higher[j++];
}
while(i < lower.length)
array[k++] = lower[i++];
while(j < higher.lenth)
array[k++] = higher[j++];
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment