ต่อไปนี้เป็นโปรแกรม 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 จะถูกส่งคืนตามเดิม มิฉะนั้น องค์ประกอบของอาร์เรย์จะถูกจัดเรียงโดยการลดขนาดของอาร์เรย์ครั้งแล้วครั้งเล่าโดยการลดขนาดของอาร์เรย์
องค์ประกอบสุดท้ายของอาร์เรย์จะถูกวางไว้ในตำแหน่งที่ถูกต้อง และตัวแปรอื่นจะใช้เป็นดัชนีเพื่อตรวจสอบว่าองค์ประกอบสุดท้ายในอาร์เรย์เท่ากับองค์ประกอบดัชนีเฉพาะนั้นในอาร์เรย์หรือไม่ วิธีนี้จะทำให้องค์ประกอบต่างๆ อยู่ในตำแหน่งที่ถูกต้อง หากพบองค์ประกอบที่มากกว่าคีย์ องค์ประกอบนั้นจะถูกเพิ่มไปยังตำแหน่งถัดไป เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล