Алгоритми та структури даних — Рекурсія за допомогою Java

Git посилання: https://github.com/prakashbtech87/PrakashJavaRepository/blob/main/src/main/java/com/prakash/a2zdsa/recursion/ReverseArray.java

package com.prakash.a2zdsa.recursion;  

/**  
 * Клас ReverseArray демонструє перевертання масиву за допомогою рекурсії.  
 * Автор: Prakash Karuppusamy  
 */  
public class ReverseArray {  

 /**  
 * Рекурсивний метод для перевертання масиву.  
 *  
 * @param i Поточний індекс для обміну елементами з початку.  
 * @param arr Масив, який потрібно перевернути.  
 * @param n Довжина масиву.  
 */  
 static void reverse(int i, int[] arr, int n) {  
 // Базова умова: зупинка рекурсії, коли досягнуто середину масиву.  
 if (i >= n / 2) return;  

 // Обмін елементами на позиціях i та (n - i - 1).  
 swap(arr, i, n - i - 1);  

 // Рекурсивний виклик для перевертання наступної пари елементів.  
 reverse(i + 1, arr, n);  
 }  

 /**  
 * Допоміжний метод для обміну двома елементами в масиві.  
 *  
 * @param arr Масив, що містить елементи.  
 * @param i Індекс першого елемента.  
 * @param j Індекс другого елемента.  
 */  
 static void swap(int[] arr, int i, int j) {  
 int temp = arr[i]; // Зберігаємо значення за індексом i в тимчасовій змінній.  
 arr[i] = arr[j]; // Присвоюємо значення з індексу j індексу i.  
 arr[j] = temp; // Присвоюємо тимчасове значення індексу j.  
 }  

 public static void main(String[] args) {  
 int arr[] = {1, 2, 3, 4, 5}; // Вхідний масив.  

 System.out.println("Оригінальний масив:");  
 printArray(arr);  

 // Викликаємо метод reverse для перевертання масиву.  
 reverse(0, arr, arr.length);  

 System.out.println("Перевернутий масив:");  
 printArray(arr);  
 }  

 /**  
 * Утилітний метод для виведення масиву.  
 *  
 * @param arr Масив, який потрібно вивести.  
 */  
 static void printArray(int[] arr) {  
 for (int num : arr) {  
 System.out.print(num + " ");  
 }  
 System.out.println();  
 }  
}




Перекладено з: [DSA — Recursion using Java](https://prakashbtech87.medium.com/dsa-recursion-using-java-101b41df8822)

Leave a Reply

Your email address will not be published. Required fields are marked *