INDEX
Exp No. Title Date
Write a Java Program to Find Element in
01
an array using Linear Search Recursively
02
03
04
05
Write a Java Program to Find Minimum
06 and Maximum of Element in an array
using Recursively
Write a Java Program to implement
07 27-04-2024
Fibonacci Series using Recursively
Write a Java Program to implement
08 27-04-2024
Fibonacci Series using Non-Recursively
Write a Java Program to implement
09 27-04-2024
Tower Of Hanoi using Recursively
Program No.1 :- Write a Java Program to Find Element in an array using Linear
Search Recursively
public class Prog1 {
static int recursiveSearch(int arr[], int l, int r, int x)
{
if (r < l)
return -1;
if (arr[l] == x)
return l;
if (arr[r] == x)
return r;
return recursiveSearch(arr, l + 1, r - 1, x);
}
public static void main(String[] args)
{
int x = 3;
int arr[] = new int[] { 25, 60, 18, 3, 10 };
int index = recursiveSearch(arr, 0, arr.length - 1, x);
if (index != -1)
System.out.println("Element " + x + " is present at index " + index);
else
System.out.println("Element " + x + " is not present");
}
}
OUTPUT 1 :-
Element 3 is present at index 3
OUTPUT 2 :-
Element 3 is not present
ORDER OF GROWTH :-
Time complexity: O(N2) where N is size of input array
Auxiliary Space : O(N)
ALGORITHM :-
LinearSearch (array, index, key):
if index < 0:
return -1;
if item = key:
return index
return LinearSearch (array, index-1, key)
Program No.6 :- Write a Java Program to Find Minimum and Maximum of Element in
an array using Recursively
public class Prog6 {
static int findMinRec(int arr[], int n) {
if (n == 1)
return arr[0];
return Math.min(arr[n-1], findMinRec(arr, n-1));
}
static int findMaxRec(int arr[], int n) {
if (n == 1)
return arr[0];
return Math.max(arr[n-1], findMaxRec(arr, n-1));
}
public static void main(String[] args) {
int arr[] = {1, 4, 45, 6, -50, 10, 2};
int n = arr.length;
System.out.println("Minimum: " + findMinRec(arr, n));
System.out.println("Maximum: " + findMaxRec(arr, n));
}
}
ALGORITHM :-
PROCEDURE FIND_MIN_REC(ARRAY, LENGTH):
IF LENGTH EQUALS 1 THEN
RETURN ARRAY[0]
ELSE
RETURN MINIMUM OF ARRAY[LENGTH-1] AND FIND_MIN_REC(ARRAY,
LENGTH-1)
PROCEDURE FIND_MAX_REC(ARRAY, LENGTH):
IF LENGTH EQUALS 1 THEN
RETURN ARRAY[0]
ELSE
RETURN MAXIMUM OF ARRAY[LENGTH-1] AND FIND_MAX_REC(ARRAY,
LENGTH-1)
Program No.7 :- Write a Java Program to implement Fibonacci Series using
Recursively
public class Prog7 {
static int fibonacci(int n)
{
if (n <= 1)
return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String args[])
{
int N = 11;
System.out.println("Fibonacci series for : " + N );
for (int i = 0; i < N; i++) {
System.out.print(fibonacci(i) + " ");
}
}
}
ALGORITHM :-
PROCEDURE FIBONACCI(NUMBER)
IF NUMBER <= 1 THEN
RETURN NUMBER
ELSE
RETURN FIBONACCI(NUMBER - 1) + FIBONACCI(NUMBER - 2)
END IF
END PROCEDURE
Program No.8 :- Write a Java Program to implement Fibonacci Series using Non-
Recursively
public class Prog8 {
static void fibonacci(int N)
{
int num1 = 0, num2 = 1;
for (int i = 0; i < N; i++) {
System.out.print(num1 + " ");
int num3 = num2 + num1;
num1 = num2;
num2 = num3;
}
}
public static void main(String args[])
{
int N = 12;
System.out.println("Fibonacci series for : " + N );
fibonacci(N);
}
ALGORITHM :-
FUNCTION Fibonacci(N):
num1 = 0
num2 = 1
FOR i FROM 0 TO N-1:
OUTPUT num1
num3 = num2 + num1
num1 = num2
num2 = num3
Program No.9 :- Write a Java Program to implement Tower Of Hanoi using
Recursively
public class Prog9 {
static void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod)
{
if (n == 1) {
System.out.println("Move disk 1 from rod " + from_rod + " to rod " + to_rod);
return;
}
towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
System.out.println("Move disk " + n + " from rod " + from_rod + " to rod " + to_rod);
towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
}
public static void main(String args[])
{
int n = 3;
towerOfHanoi(n, 'A', 'B', 'C');
}
}
ALGORITHM :-
PROCEDURE TOWER_OF_HANOI(N, FROM_ROD, TO_ROD, AUX_ROD)
IF N EQUALS 1 THEN
PRINT "Move disk 1 from rod " + FROM_ROD + " to rod " + TO_ROD
RETURN
END IF
TOWER_OF_HANOI(N - 1, FROM_ROD, AUX_ROD, TO_ROD)
PRINT "Move disk " + N + " from rod " + FROM_ROD + " to rod " + TO_ROD
TOWER_OF_HANOI(N - 1, AUX_ROD, TO_ROD, FROM_ROD)
END PROCEDURE