프로그램 예제를 사용한 Java의 삽입 정렬 알고리즘

삽입 정렬 알고리즘이란 무엇입니까?

삽입 정렬은 작은 데이터 세트에 적합한 간단한 정렬 알고리즘입니다. 각 반복 중에 알고리즘은 다음을 수행합니다.

  • 배열에서 요소를 제거합니다.
  • 보정ares 그 중 가장 큰 값과 비교하여 정렬.
  • 요소를 올바른 위치로 이동합니다.

삽입 정렬 알고리즘 프로세스

삽입 정렬 알고리즘 프로세스가 그래픽으로 작동하는 방식은 다음과 같습니다.

삽입 정렬 알고리즘 프로세스
삽입 정렬 알고리즘 프로세스

삽입 정렬 알고리즘을 사용하여 배열을 정렬하는 Java 프로그램 예:

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();
	    
	}
}

코드 출력:

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