OneCompiler

Mergesort data structures

118

let Arr=[7,4,9,34,87,23,89,1,22,9,5]

mergesort(Arr)
console.log(Arr)

function mergesort(argarr){
let midvalue = Math.ceil((argarr.length)/2);
if(argarr.length>1){
let leftvalue = argarr.slice(0,midvalue)
let rightvalue = argarr.slice(midvalue,argarr.length)
mergesort(leftvalue)
mergesort(rightvalue)

merger(leftvalue,rightvalue,argarr);

}
function merger(larr,rarr,oarr){
let i = 0;
let j = 0;
let k = 0;

while(i<larr.length && j<rarr.length){
  if(larr[i]<rarr[j]){
    oarr[k]=larr[i]
    k++
    i++
  }
  else{
    oarr[k]=rarr[j]
    k++
    j++
  }
}

while(i<larr.length){
  oarr[k]=larr[i]
  k++
  i++
}
while(j<rarr.length){
  oarr[k]=rarr[j]
  k++
  j++
}
console.log(oarr)

}

}