কম্পিউটার

C++ এ একটি অ্যারের মধ্যে সবচেয়ে বড় তিনটি উপাদান খুঁজুন


এই সমস্যায়, আমাদেরকে একটি arr[] দেওয়া হয়েছে যা N সাজানো না হওয়া উপাদান নিয়ে গঠিত। আমাদের কাজ হল একটি অ্যারের মধ্যে সবচেয়ে বড় তিনটি উপাদান খুঁজে পাওয়া .

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input : arr[] = {7, 3, 9, 12, 1}
Output : 12, 9, 7

সমাধান পদ্ধতি

আমাদের মূলত অ্যারের তিনটি বৃহত্তম উপাদান খুঁজে বের করতে হবে এবং সেগুলি প্রিন্ট করতে হবে। এটি একাধিক উপায়ে করা যেতে পারে,

পদ্ধতি 1

বৃহত্তম তিনটি উপাদানের জন্য, আমরা তিনটি উপাদান তৈরি করব যার মান থাকবে, max, max2 এবং max3 এবং এই মানগুলিকে arr[0] এ সেট করুন।

তারপর আমরা লুপ করব ফর্ম i -> 1 থেকে n-1 এবং প্রতিটি উপাদানের জন্য

if (arr[i]> max) -> max3 =max2, max2 =max , max =arr[i]।

অন্যথায় যদি (arr[i]> max2) -> max3 =max2, max2 =arr[i]।

অন্যথায় যদি (arr[i]> max3) -> max3 =arr[i]।

লুপের শেষে, আমরা তিনটি মানই প্রিন্ট করব।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <iostream>
using namespace std;
void findThreeLargestElements(int arr[], int arr_size){
   int max, max2, max3;
   max3 = max = max2 = arr[0];
   for(int i = 0; i < arr_size; i++){
      if (arr[i] > max){
         max3 = max2;
         max2 = max;
         max = arr[i];
      }
      else if (arr[i] > max2){
         max3 = max2;
         max2 = arr[i];
      }
      else if (arr[i] > max3)
         max3 = arr[i];
   }
   cout<<endl<<"Three largest elements of the array are "<<max<<", "<<max2<<", "<<max3;
}
int main(){
   int arr[] = {15, 2, 7, 86, 0, 21, 50};
   int n = sizeof(arr) / sizeof(arr[0]); 
   cout<<"The array is : ";
   for(int i = 0; i < n; i++) 
      cout<<arr[i]<<"\t"; 
   findThreeLargestElements(arr, n);
   return 0;
}

আউটপুট

The array is : 15 2 7 86 0 21 50 Three largest elements of the array are 86, 50, 21

পদ্ধতি 2

সমস্যা সমাধানের আরেকটি পদ্ধতি হল অ্যারে সাজানো এবং তারপর অ্যারের প্রথম তিনটি উপাদান প্রিন্ট করা যা তিনটি বৃহত্তম উপাদান।

অ্যালগরিদম

ধাপ 1 − একটি সাজানোর কৌশল ব্যবহার করে অ্যারে সাজান।

ধাপ 2 − প্রথম তিনটি উপাদান প্রিন্ট করুন:arr[0] , arr[1] , arr[2]

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <bits/stdc++.h>
using namespace std;
void findThreeLargestElements(int arr[], int n){
   sort(arr, arr + n, std::greater<>());
   int j = 0;
   cout<<"\nThree largest elements are ";
   for(int i = 0; i < n; i++){ 
      if(arr[i] != arr[i+1]){ 
         cout<<arr[i]<<" "; 
         j++;
      }
      if(j == 3){
         break;
      }
   }
}
int main(){
   int arr[] = {15, 2, 7, 86, 0, 21, 50, 53, 50};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The array is : ";
   for(int i = 0; i < n; i++)
      cout<<arr[i]<<"\t";
   findThreeLargestElements(arr, n);
   return 0;
}

আউটপুট

The array is : 15 2 7 86 0 21 50 53 50
Three largest elements are 86 53 50

  1. C++ প্রোগ্রাম তিনটি উপাদানের মধ্যে ক্ষুদ্রতম উপাদান খুঁজে বের করতে

  2. C++ এ একটি অ্যারের মধ্যে ক্ষুদ্রতম এবং দ্বিতীয় ক্ষুদ্রতম উপাদান খুঁজুন

  3. C++ এ একটি অ্যারেতে প্রথম, দ্বিতীয় এবং তৃতীয় ন্যূনতম উপাদানগুলি খুঁজুন

  4. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম