আমাদের একটি পূর্ণসংখ্যার অ্যারে দেওয়া আছে। কাজটি হলো অ্যারেটির সর্বনিম্ন ও সর্বাধিক উপাদান খুঁজে বের করা, কিন্তু ন্যূনতম সংখ্যক তুলনা ব্যবহার করে।
উদাহরণ
ইনপুট:
Arr[] = { 1, 2, 4, 5, -3, 91 }
আউটপুট:
সর্বাধিক উপাদান: 91 সর্বনিম্ন উপাদান: -3
ব্যাখ্যা: তুলনার সংখ্যা কমাতে আমরা max এবং min ভেরিয়েবল দুটো Arr[0] দিয়ে ইনিশিয়ালাইজ করব। তারপর দ্বিতীয় উপাদান থেকে শুরু করে প্রতিটি মান min এবং max এর সাথে তুলনা করব এবং প্রয়োজনে আপডেট করব।
ইনপুট:
Arr[] = { 10, 20, 21, 31, 18, 11 }
আউটপুট:
সর্বাধিক উপাদান: 31 সর্বনিম্ন উপাদান: 10
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- একটি পূর্ণসংখ্যার অ্যারে Arr[] নেওয়া হয়েছে।
- getresult(int arr[], int n) ফাংশনটি ন্যূনতম তুলনায় সর্বাধিক ও সর্বনিম্ন খুঁজে বের করে।
- যদি অ্যারেতে শুধু একটি উপাদান থাকে, তবে max এবং min উভয়কেই arr[0] দিয়ে ইনিশিয়ালাইজ করা হয়।
- একাধিক উপাদান থাকলে, arr[0] এবং arr[1] তুলনা করে max এবং min সেট করা হয়।
- ফর লুপ দিয়ে তৃতীয় উপাদান (i=2) থেকে শেষ পর্যন্ত ট্রাভার্স করা হয়।
- প্রতিটি arr[i] কে min এবং max এর সাথে তুলনা করা হয়। যদি arr[i] < min হয় তবে min আপডেট, যদি arr[i] > max হয় তবে max আপডেট।
- শেষে max এবং min প্রিন্ট করা হয়।
C প্রোগ্রাম উদাহরণ
#include <stdio.h>
#include <math.h>
int getresult(int arr[], int n) {
int min = 0, max = 0;
if (n == 1) {
min = max = arr[0];
}
if (arr[0] > arr[1]) {
max = arr[0];
min = arr[1];
} else {
max = arr[1];
min = arr[0];
}
for (int i = 2; i < n; i++) {
if (arr[i] > max)
max = arr[i];
else if (arr[i] < min)
min = arr[i];
}
printf(" সর্বনিম্ন উপাদান: %d", min);
printf(" সর্বাধিক উপাদান: %d", max);
}
int main() {
int arr[] = {200, 191, 112, -11, 330, 60};
int n = 6;
getresult(arr, n);
return 0;
}
আউটপুট
সর্বনিম্ন উপাদান: -11 সর্বাধিক উপাদান: 330