15 June 2018

merging two sorted arrays with O(n)

Input: ar1[] = {10};
       ar2[] = {2, 3};
Output: ar1[] = {2}
        ar2[] = {3, 10}  

Input: ar1[] = {1, 5, 9, 10, 15, 20};
       ar2[] = {2, 3, 8, 13};
Output: ar1[] = {1, 2, 3, 5, 8, 9}
        ar2[] = {10, 13, 15, 20} 

public class NewClass33 {
    void print(int ar[],int br[])
    {
        for(int i=0;i<ar.length;i++)
            System.out.print(ar[i]+" ");
        System.out.println();
        for(int j=0;j<br.length;j++)
            System.out.print(br[j]+" ");
    }
    void Sort(int ar[],int i)
    {
       
            for(int j=i+1;j<ar.length;j++)
            {
                if(ar[i]>ar[j])
                {
                    ar[i]=ar[i]+ar[j];
                    ar[j]=ar[i]-ar[j];
                    ar[i]=ar[i]-ar[j];
                }
            }
              if(i<ar.length-1)
              {
                  Sort(ar,++i);
              }
    }

    void ArraySort(int ar[],int br[],int i)
    {
       
          for(int j=0;j<br.length;j++)
            {
                if(ar[i]>br[j])
                {
                    ar[i]=ar[i]+br[j];
                    br[j]=ar[i]-br[j];
                    ar[i]=ar[i]-br[j];      
                } 
            }
              if(i<ar.length-1)
            ArraySort(ar,br,++i);
    }
   
public static void main(String args[])
    {
        int ar[]={1,2,9,10,15,20};
        int br[]={2,3,8,13};
        NewClass33 ob=new NewClass33();
        ob.ArraySort(ar,br,0);
        ob.Sort(br,0);
        ob.print(ar,br);
    }
}

No comments:

Post a Comment