以下是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("实现插入排序后的数组元素是 "); System.out.println(Arrays.toString(my_arr)); } }
输出结果
实现插入排序后的数组元素是 [0, 11, 11, 23, 42, 67, 83]
名为Demo的类包含用于插入排序的静态递归函数。 此函数将数组及其长度作为参数。 这里,检查了几个条件。 如果数组的长度小于1,则按原样返回。 否则,通过一次又一次地通过减小数组的大小来减少数组的大小来对数组的元素进行排序。
数组的最后一个元素将被放在正确的位置,另一个变量用作索引,以检查数组中的最后一个元素是否等于数组中的特定索引元素。 这样,元素就可以放置在正确的位置。 如果遇到大于key的元素,它将递增到下一个位置。 控制台上会显示相关输出。