10

In this program merged two array and then sorted using temp.but this not correct method.because two array are sorted ,so method should be unique i.e. merging of two sorted in sorted form should be unique.

Example:

  • a=[1,2,3,5,9]
  • b=[4,6,7,8]

function mergeSortdArray(a,b){
	for(var i=0;i<b.length;i++){
		a.push(b[i]);
	}
	//console.log(a);
for(i=0;i<a.length;i++)
    {
        for(j=i+1;j<a.length;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    return a;
}
console.log(mergeSortedArray([1,2,3,5,9],[4,6,7,8]));

1
  • how to merge two sorted array in one sorted array in JavaScript. Commented Aug 10, 2015 at 14:36

35 Answers 35

1
2
0

function mergeSortdArray(a,b){
    for(var i=0;i<b.length;i++){
        a.push(b[i]);
    }
    //console.log(a);
for(i=0;i<a.length;i++)
    {
        for(j=i+1;j<a.length;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    return a;
}
console.log(mergeSortdArray([1,2,3,5,9],[4,6,7,8]));

Sign up to request clarification or add additional context in comments.

Comments

0

console.log("merge sorted array::", mergeBinaryArray([1,4,5,34,36],  [2,4,5,6,7,8]))
function mergeBinaryArray(array1, array2){
let p1 = 0, p2= 0, p3 =0, sortedArray = []; 
while( p1 < array1.length && p2 < array2.length){
    if(array1[p1] < array2[p2]){
        sortedArray[p3] = array1[p1]
        p1++;
        p3++
    }else{
        sortedArray[p3] = array2[p2]
        p2++;
        p3++;
    }

}
if(p1 < array1.length){
   for(let index = p1; index < array1.length; index++){
       sortedArray.push(array1[index]);
       p3++
   }

}
if(p2 < array2.length){
   for(let index= p2; index< array2.length; index++){
       sortedArray.push(array2[index]);
       p3++;
   }
   
}
return sortedArray;
}

Comments

0

Please find the below solution. Stackblitz link - https://stackblitz.com/edit/js-mp1ajm?file=index.js

class MergeSortArray {
  arr1 = [];
  arr2 = [];
  arr3 = [];

  constructor(arr1, arr2) {
    this.arr1 = arr1;
    this.arr2 = arr2;
  }

  mergeArray() {
    let n1 = this.arr1.length;
    let n2 = this.arr2.length;
    let i = 0,
      j = 0,
      k = 0;
    while (i < n1 && j < n2) {
      if (this.arr1[i] < this.arr2[j]) {
        this.arr3[k++] = this.arr1[i++];
      } else {
        this.arr3[k++] = this.arr2[j++];
      }
    }

    // Store remaining elements of first array
    while (i < n1) this.arr3[k++] = this.arr1[i++];

    // Store remaining elements of second array
    while (j < n2) this.arr3[k++] = this.arr2[j++];

    return this.arr3;
  }
}
let obj = new MergeSortArray([1, 3, 5, 7, 9, 67], [2, 4, 6, 8]);
let arr3 = obj.mergeArray();
console.log(arr3)

Comments

0

var a = [1, 2, 3, 5, 9, 11]
var b = [4, 6, 7, 8]
var c = [];

function mergeArr() {
  for (let i = 0; i < b.length; i++) {
    for (let j = 0; j < a.length; j++) {
      if (!c.includes(b[i])) {
        c.push(b[i]);
      }
      if (!c.includes(a[j])) {
        c.push(a[j]);
      }
    }
  }
  organizeArr(c)
}

function organizeArr() {
  let organizer;
  for (let index = 0; index < c.length; index++) {
    for (let j = index + 1; j < c.length; j++) {
      if (c[index] > c[j]) {
        organizer = c[index]
        c[index] = c[j]
        c[j] = organizer
      }
    }
  }
  console.log(c);

}
mergeArr()

First Merge Array and then sort array which returns this function can be scalable up to n number

Comments

-1

function mergeSortedArray(a, b) {
    var arr = a.concat(b).sort(function(a, b) {
        return a - b;
     });
    return arr;
 }
 console.log(mergeSortedArray(a, b));

Comments

1
2

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.