1. 알고리즘 개념.
정렬되지 않은 목록에서 첫 번째 요소를 가져와 정렬된 목록의 적절한 위치에 삽입할 때마다 정렬된 목록이 정렬된 상태로 유지됩니다.
2. 알고리즘적 사고.
정렬할 레코드가 배열 R[1..n]에 저장되어 있다고 가정합니다. 처음에는 R[1]이 정렬된 영역을 형성하고, 정렬되지 않은 영역은 R[2..n]입니다. i=2부터 i=n까지 R[i]를 현재 정렬된 영역 R[1..i-1]에 순차적으로 삽입하여 n개의 레코드를 포함하는 정렬된 영역을 생성합니다.
public static void insertSort(int[] array) { int len = array.length; for (int i = 1; i < len; i++) { for (int j = i; j > 0; j--) if ( array[j] < array[j - 1]) { Sort.swap(array, j, j - 1);//j와 j-1 교환 } else break;
삽입 정렬 다이어그램:
위 내용은 이 글에서 공유한 모든 내용입니다. 삽입 정렬 알고리즘을 이해하는 데 도움이 되기를 바랍니다.