Algoritm de sortare inserare în Java cu Exemplu de program

Ce este algoritmul de sortare prin inserție?

Sortarea prin inserție este un algoritm de sortare simplu, potrivit pentru seturi mici de date. În timpul fiecărei iterații, algoritmul:

  • Îndepărtează un element dintr-o matrice.
  • O compară cu cea mai mare valoare din mulțime.
  • Mută ​​elementul în locația corectă.

Procesul algoritmului de sortare prin inserare

Iată cum funcționează grafic procesul algoritmului de sortare prin inserare:

Procesul algoritmului de sortare prin inserare
Procesul algoritmului de sortare prin inserare

Java Exemplu de program pentru a sorta o matrice folosind algoritmul de sortare prin inserție:

package com.guru99;
 
public class InsertionSortExample {
 
	
    public static void main(String a[])
    {    
        int[] myArray  = {860,8,200,9};  
        
        System.out.println("Before Insertion Sort");  
        
        printArray(myArray);
            
        insertionSort(myArray);//sorting array using insertion sort    
           
        System.out.println("After Insertion Sort");  
        
        printArray(myArray);   
    }    
 public static void insertionSort(int arr[]) 
	{  
        int n = arr.length;  
        
        for (int i = 1; i < n; i++)
        {   System.out.println("Sort Pass Number "+(i));
            int key = arr[i];  
            int j = i-1;  
            
            while ( (j > -1) && ( arr [j] > key ) ) 
            {  
            System.out.println("Comparing "+ key  + " and " + arr [j]); 
                arr [j+1] = arr [j];  
                j--;  
            }  
            arr[j+1] = key; 
            System.out.println("Swapping Elements: New Array After Swap");
            printArray(arr);
        }  
    }
 static void printArray(int[] array){
	    
	    for(int i=0; i < array.length; i++)
		{  
			System.out.print(array[i] + " ");  
		} 
	    System.out.println();
	    
	}
}

Ieșire cod:

Before Insertion Sort
860 8 200 9 
Sort Pass Number 1
Comparing 8 and 860
Swapping Elements: New Array After Swap
8 860 200 9 
Sort Pass Number 2
Comparing 200 and 860
Swapping Elements: New Array After Swap
8 200 860 9 
Sort Pass Number 3
Comparing 9 and 860
Comparing 9 and 200
Swapping Elements: New Array After Swap
8 9 200 860 
After Insertion Sort
8 9 200 860