Find Second Largest Element in an Array – Using Recursion
যা শিখবো:
কীভাবে recursion ব্যবহার করে array-এর largest এবং second largest element বের করা যায়
base case ও recursive call কিভাবে কাজ করে
array indexing এবং condition check-এর ব্যবহার
ধাপে ধাপে ব্যাখ্যা:
Step 1: Maximum element খুঁজে বের করার function
C
intfindMax(intarr[],intn,intindex){if(index == n -1)returnarr[index];int maxRest =findMax(arr, n, index +1);return(arr[index]> maxRest)?arr[index]: maxRest;}
Step 2: Second largest element খুঁজে বের করার function
C
intfindSecondMax(intarr[],intn,intindex,intmax){if(index == n)return-2147483648;// INT_MINint temp =findSecondMax(arr, n, index +1, max);if(arr[index]!= max &&arr[index]> temp)returnarr[index];elsereturn temp;}
Step 3: ইউজার থেকে array size ইনপুট নেওয়া
C
scanf("%d",&n);
Step 4: ইউজার থেকে array elements ইনপুট নেওয়া
C
for(i =0; i < n; i++){scanf("%d",&arr[i]);}
Step 5: Functions call করে second largest element বের করা
C
maximum =findMax(arr, n,0);<br>secondMax =findSecondMax(arr, n,0, maximum);<br>
উদাহরণ:
C
#include<stdio.h>#include<limits.h>// For INT_MIN// Function to find maximum element using recursionintfindMax(intarr[],intn,intindex){if(index == n -1)returnarr[index];int maxRest =findMax(arr, n, index +1);return(arr[index]> maxRest)?arr[index]: maxRest;}// Function to find second largest element using recursionintfindSecondMax(intarr[],intn,intindex,intmax){if(index == n)return INT_MIN;// Smallest integerint temp =findSecondMax(arr, n, index +1, max);if(arr[index]!= max &&arr[index]> temp)returnarr[index];elsereturn temp;}intmain(){int n, i, maximum, secondMax;printf("Enter the number of elements: ");scanf("%d",&n);intarr[n];printf("Enter the elements:\n");for(i =0; i < n; i++){scanf("%d",&arr[i]);} maximum =findMax(arr, n,0); secondMax =findSecondMax(arr, n,0, maximum);if(secondMax == INT_MIN)printf("\nNo second largest element exists.\n");elseprintf("\nSecond largest element in the array: %d\n", secondMax);return0;}
আউটপুট উদাহরণ:
উদাহরণ ১:
C
Enter the number of elements: 5Enter the elements:102573015Second largest element in the array: 25
উদাহরণ ২:
C
Enter the number of elements: 4Enter the elements:5555No second largest element exists.
ব্যাখ্যা:
findMax() → recursion ব্যবহার করে array-এর largest element বের করে
findSecondMax() → recursion ব্যবহার করে largest element ছাড়া অন্য largest element খুঁজে বের করে
Base Case → index শেষ হলে recursion থেমে যায়
Recursive Call → index বাড়িয়ে array-এর পরবর্তী element চেক করে
যদি array তে সব element সমান হয়, second largest element নেই, তাই INT_MIN check করা হয়