Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java สำหรับการเรียงลำดับการแทรกแบบเรียกซ้ำ


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

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