다음은 재귀 삽입 정렬을 위한 Java 프로그램입니다 -
예시
import java.util.Arrays; public class Demo{ static void recursive_ins_sort(int my_arr[], int arr_len){ if (arr_len <= 1) return; recursive_ins_sort( my_arr, arr_len-1 ); int last = my_arr[arr_len-1]; int j = arr_len-2; while (j >= 0 && my_arr[j] > last){ my_arr[j+1] = my_arr[j]; j--; } my_arr[j+1] = last; } public static void main(String[] args){ int my_arr[] = {11, 23, 67, 83, 42, 11, 0}; recursive_ins_sort(my_arr, my_arr.length); System.out.println("The array elements after implementing insertion sort is "); System.out.println(Arrays.toString(my_arr)); } }
출력
The array elements after implementing insertion sort is [0, 11, 11, 23, 42, 67, 83]
Demo라는 클래스에는 삽입 정렬을 위한 정적 재귀 함수가 포함되어 있습니다. 이 함수는 배열과 그 길이를 매개변수로 사용합니다. 여기에서 몇 가지 조건을 확인합니다. 배열의 길이가 1보다 작으면 그대로 반환됩니다. 그렇지 않으면 배열의 요소는 배열의 크기를 줄임으로써 계속해서 배열의 크기를 줄임으로써 정렬됩니다.
배열의 마지막 요소는 올바른 위치에 배치되고 다른 변수는 배열의 마지막 요소가 배열의 특정 인덱스 요소와 같은지 확인하기 위해 인덱스로 사용됩니다. 이렇게 하면 요소가 올바른 위치에 배치됩니다. 키보다 큰 요소가 발견되면 다음 위치로 증분됩니다. 관련 출력이 콘솔에 표시됩니다.