কম্পিউটার টিউটোরিয়াল

C++-এ প্রথম বর্ধমান তারপর হ্রাসমান অ্যারেতে সর্বোচ্চ উপাদান খুঁজে বের করা


একটি অ্যারে দেওয়া আছে যা প্রথমে বর্ধমান (increasing) তারপর হ্রাসমান (decreasing)। আমাদের অ্যারেতে সর্বোচ্চ মান খুঁজে বের করতে হবে। উদাহরণস্বরূপ, অ্যারে A = [8, 10, 20, 80, 100, 250, 450, 100, 3, 2, 1] হলে আউটপুট হবে ৪৫০।

এটি সমাধানের জন্য বাইনারি সার্চ (binary search) ব্যবহার করা যায়। তিনটি কন্ডিশন (condition) আছে:

  • যদি মিড (mid) এলিমেন্ট তার দুটি পাড়ের উপাদান থেকে বড় হয়, তবে মিডই সর্বোচ্চ
  • যদি মিড পরবর্তী এলিমেন্ট থেকে বড় হয় কিন্তু পূর্ববর্তী এলিমেন্ট থেকে ছোট হয়, তবে সর্বোচ্চ মিডের বামপাশে আছে
  • যদি মিড এলিমেন্ট পরবর্তী এলিমেন্ট থেকে ছোট হয় কিন্তু পূর্ববর্তী এলিমেন্ট থেকে বড় হয়, তবে সর্বোচ্চ মিডের ডানপাশে আছে

উদাহরণ

#include<iostream> using namespace std; int getMaxElement(int array[], int left, int right) {    if (left == right)       return array[left];    if ((right == left + 1) && array[left] >= array[right])       return array[left];    if ((right == left + 1) && array[left] < array[right])       return array[right];    int mid = (left + right)/2;    if ( array[mid] > array[mid + 1] && array[mid] > array[mid - 1])       return array[mid];    if (array[mid] > array[mid + 1] && array[mid] < array[mid - 1])       return getMaxElement(array, left, mid-1);    else       return getMaxElement(array, mid + 1, right); } int main() {    int array[] = {8, 10, 20, 80, 100, 250, 450, 100, 3, 2, 1};    int n = sizeof(array)/sizeof(array[0]);    cout << "The maximum element is: " << getMaxElement(array, 0, n-1); }

আউটপুট

The maximum element is: 450

  1. সি++ প্রোগ্রাম: অ্যারেতে প্রথম, দ্বিতীয় ও তৃতীয় সর্বনিম্ন উপাদান খুঁজে বের করা

  2. সি++ প্রোগ্রাম: প্রথম অ্যারেতে থাকা কিন্তু দ্বিতীয় অ্যারেতে নেই এমন উপাদানগুলো খুঁজে বের করা

  3. C++ ব্যবহার করে অ্যারেতে ab = cd সেটি করার সব জোড়া (a,b) ও (c,d) বের করা

  4. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফলের প্রথম ডিজিট বের করা