Skip to content

Instantly share code, notes, and snippets.

@0xh3xa
Last active December 7, 2016 17:34
Show Gist options
  • Select an option

  • Save 0xh3xa/196b06283b4de5f5ee18b2efc743f048 to your computer and use it in GitHub Desktop.

Select an option

Save 0xh3xa/196b06283b4de5f5ee18b2efc743f048 to your computer and use it in GitHub Desktop.
var elements = [];
var tmp = [];
var Students = function (name, age) {
this.name = name;
this.age = age;
}
function addElementToArray(student){
elements.push(student);
}
addElementToArray(new Students("Ahmad", 23));
addElementToArray(new Students("Jack", 20));
addElementToArray(new Students("Sam", 27));
function sort(){
merge_sort(0, elements.length-1);
}
function merge_sort(lo, hi){
if(lo<hi){
middle = lo + (hi-lo)/2;
merge_sort(lo, middle);
merge_sort(middle+1, hi);
merge(lo, middle, hi);
}
}
function merge(lo, middle, hi){
for(i=lo; i<=hi; i++){
tmp[i] = elements[i];
}
i = lo;
j = middle+1;
k = lo;
while(i<=middle && j<=hi){
if(tmp[i].age<=tmp[j].age){
elements[k] = tmp[i];
i++
}else{
elements[k] = tmp[j];
j++;
}
k++
}
while(i<=middle){
elements[k] = tmp[i];
k++;
i++;
}
}
function printElements(){
for(i=0; i<elements.length; i++){
console.log(elements[i]);
}
}
sort();
printElements();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment