[java] 삽입 정렬 알고리즘

삽입 정렬은 간단하지만 효율적인 정렬 알고리즘입니다. 이 알고리즘은 리스트를 순차적으로 탐색하면서 각 요소를 적절한 위치에 삽입하여 정렬합니다.

삽입 정렬 알고리즘 동작 방식

  1. 리스트의 두 번째 요소부터 시작하여 삽입할 대상을 선택합니다.
  2. 삽입할 대상을 이미 정렬된 부분의 적절한 위치에 삽입합니다.
  3. 대상을 삽입한 후, 다음 요소를 선택하고 위의 과정을 반복합니다.

Java로 구현한 삽입 정렬 알고리즘 예제

public class InsertionSort {
    public void insertionSort(int[] arr) {
        int n = arr.length;
        for (int i = 1; i < n; i++) {
            int key = arr[i];
            int j = i - 1;
 
            /* Move elements of arr[0..i-1], that are
               greater than key, to one position ahead
               of their current position */
            while (j >= 0 && arr[j] > key) {
                arr[j + 1] = arr[j];
                j = j - 1;
            }
            arr[j + 1] = key;
        }
    }
}

위의 예제는 주어진 배열을 오름차순으로 삽입 정렬하는 Java 코드입니다.

삽입 정렬은 작은 크기의 리스트에 효과적이며, 이미 대부분이 정렬되어 있는 경우에도 빠르게 동작합니다.

참고 문헌: