0% found this document useful (0 votes)
5 views

DAA Using Java Lab

The document discusses 9 Java programs that implement various recursive algorithms including linear search, finding minimum and maximum values, Fibonacci series, and Tower of Hanoi. For each program there is code examples and explanations of the algorithms.

Uploaded by

sunil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

DAA Using Java Lab

The document discusses 9 Java programs that implement various recursive algorithms including linear search, finding minimum and maximum values, Fibonacci series, and Tower of Hanoi. For each program there is code examples and explanations of the algorithms.

Uploaded by

sunil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

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

You might also like