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