Skip to main content

Insertion Sort in JAVA

What is insertion sort?

It is a sorting technique that is based on the partitioning of array into two parts like selection sort, sorted and unsorted.

The process is:-

compare adjacent elements.
if(left > right)
Swap the element
{
check for sorted array whether it is still in sort manner(put j=i and loop in until j is not equal to zero)
- No
check for if(right<left)
swap
do it until at the end of position.
}

Implementation:-

Underline eleemnts are part of sorted array

inside main array loop 14 27 10 33 35 19 42 4 (14 10 27 33 35 19 42 4 (here sorted array is distorted hence sorting has been done inside the loop)
    inside sorted array loop 10 14 27 33 35 19 42 4 
inside main array loop 10 14 27 33 35 19 42 4 
inside main array loop 10 14 27 33 35 19 42 4 
inside main array loop 10 14 27 33 35 19 42 4 
    inside sorted array loop 10 14 27 19 33 35 42 4 
    inside sorted array loop 10 14 19 27 33 35 42 4 
inside main array loop 10 14 19 27 33 35 42 4 
inside main array loop 10 14 19 27 33 35 42 4 
    inside sorted array loop 10 14 19 27 33 4 35 42 
    inside sorted array loop 10 14 19 27 4 33 35 42 
    inside sorted array loop 10 14 19 4 27 33 35 42 
    inside sorted array loop 10 14 4 19 27 33 35 42 
    inside sorted array loop 10 4 14 19 27 33 35 42 
    inside sorted array loop 4 10 14 19 27 33 35 42 
inside main array loop 4 10 14 19 27 33 35 42 (final sorted array)

Program:-


package sorting;

public class InsertionSort {

 //function to print array
   public static void print(int[] arr)
   {
    for(int i=0;i<=arr.length-1;i++)
     System.out.print(" "+arr[i]);
    System.out.println(" ");
   }
   
   //function to swap elements
   public static int[] swap(int[] arr,int i, int j)
   {
    int temp;
    temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
    
    return arr;
   }
  
  public static void main(String[] args)
  {
   int[] arr={14,27,10,33,35,19,42,4};
   int j;
   for(int i=0;i<arr.length-1;i++)
   {
    if(arr[i]>arr[i+1])
    {
     swap(arr,i,(i+1));
     j=i;
     for(;j>0;j--)
     {
      if(arr[j]<arr[j-1])
      {
       swap(arr,j,(j-1));
       System.out.print("    "+"inside sorted array loop");
       print(arr);
      }
     }
     
    }
    System.out.print("inside main array loop");
    print(arr);
   }
   
   
  }
}

Comments

.

Popular posts from this blog

5 steps to add existing project to your GIT HUB repository [Windows]

this tutorial will tell you how to add existing project to your git hub account. Step1. Go to your GITHUB account. Create New repository  add repository Step2. Fill the required details. ( uncheck create read me ). Add details   Step 3. Open GIT shell from your desktop. Step 4. Go to the directory of your project using cd  “path of the project” Initialize git by using command   git init Add your files by using command   git add . Commit your files by command git commit –m ‘first commit’ commands to add git   STEP 5 Select your repository Add using command git remote add origin https://github.com/username/projectname.git Now push the project to git git push -u origin master push command

Deleting a Node by passing data in LInkedList

Deleting a Node by passing data in LInkedList:- The node can be deleted by passing the data value in a function.Here we have three pointers one to traverse the list other to point current node and third one to point previous of current node. //deleting a given key public Node deleteKeyNode ( Node head , int key ) { //traverse pointer Node temp = head ; //previous pointer Node prevtemp = temp ; while ( temp != null ) { //when key is at head position if ( key == head . data ) { head = head . next ; System . out . println ( "head is deleted" ); return head ; } //when key is at any position other than head if ( temp . data == key ) { prevtemp . next = temp . next ; temp . next = null ; temp = prevtemp ; } prevtemp = temp ; temp = temp . next ; } return head ; }