Tuesday, 9 June 2015

An applet program to perform merge sort


Code for An applet program to perform merge sort in Java



 



 



 
import java.io.*;
import java.util.*;   //for working with Vectorsclass MergSort
{
         String str;
         intvalue=0;
         staticint s1=0,s2=0;
         Vector list1 = new Vector();
         Vector list2 = new Vector();
         Integer intval; //object of Integer class for converting primitive numbers to object numbersvoid getdata()
     {
         try{
              System.out.println("\n=====MERGE SORT=====");
              BufferedReader obj=new BufferedReader(new InputStreamReader(System.in));
              System.out.println("\nNOTE :  Data should be entered in sorted order");
              System.out.print("\nEnter size of First List : ");
              System.out.flush();
              str=obj.readLine();
              s1=Integer.parseInt(str);
                 for(int i=0;i<s1;i++)        
                    {
                      System.out.print("Enter value for Element "+(i+1)+" :  ");
                      System.out.flush();
                      str=obj.readLine();
                      value=Integer.parseInt(str);
                      intval = new Integer(value);
                      list1.addElement(intval);
                  }

                System.out.print("\nEnter size of Second List : ");
              System.out.flush();
              str=obj.readLine();
              s2=Integer.parseInt(str);
                  for(    int i=0;i<s2;i++)
                   {
                      System.out.print("Enter value for Element "+(i+1)+" :  ");
                      System.out.flush();
                      str=obj.readLine();
                      value=Integer.parseInt(str);
                      intval=new Integer(value);
                      list2.addElement(intval);
                   }
            }
            catch(Exception e) {}
      }

                   //MERGE LOGICvoid merging()  //method to merg
                    {
                         for(int i=0;i<s2;i++)
                         {
                             list1.insertElementAt(list2.elementAt(i),(s1+i));
                        }
                        System.out.println("\n\nAFTER MERGING");
                        for(int i=0;i<s1+s2;i++)
                        {
                            System.out.println("Element at("+(i+1)+") : "+list1.elementAt(i));
                        }
                   }
                              
                //SORT LOGICvoid sorting() //method for sorting 
                {
                    //creating temporary arrayint size=list1.size();
                    Vector sort=new Vector();
                    int a,b; //extra for converting object to primitive numbers
                    Integer A,B; //extra for taking object valueint first=0,second=s1,third=s1+s2,i,j,c=0;
                   i=first;
                   j=second;
                   while(i<second && j<third)
                   {
                          A=(Integer)list1.elementAt(i);  //Assigning object to object
                          B=(Integer)list1.elementAt(j);  //Assigning object to object

                          a=A.intValue();  //converting object to primitive number
                          b=B.intValue();  //converting object to primitive numberif(a < b)   //list1.elementAt(i)   <    list1.elementAt(j)
                            {
                               sort.insertElementAt(A,c);
                               i++;
                            }
                          else
                            {
                              sort.insertElementAt(B,c);
                              j++;
                            }
                         c++;
                    }

                    if(i<second)
                    {
                          while(i<second)
                          {
                              sort.insertElementAt(list1.elementAt(i),c);
                              i++;
                              c++;
                         }
                    }

                    if(j<third)
                    {
                        while(j<third)
                        {
                              sort.insertElementAt(list1.elementAt(j),c);
                               j++;
                               c++;
                        }
                    }

                    System.out.println("\n\nAFTER SORTING");
                    for(int k=0;k<sort.size();k++)
                          System.out.println("Element at("+(k+1)+") : "+sort.elementAt(k));
            }

}


class  MergSortData
{
    publicstaticvoid main(String[] args) 
    {
         MergSort obj=new MergSort();
         obj.getdata();
         obj.merging();
         obj.sorting();
    }
}

No comments:

Post a Comment