কম্পিউটার

C++ এ সাজানো এবং ঘোরানো অ্যারেতে সর্বাধিক উপাদান


বিবরণ

স্বতন্ত্র উপাদানগুলির একটি সাজানো বিন্যাস দেওয়া হয়েছে যা কোনও অজানা বিন্দুতে ঘোরানো হয়, কাজটি হল এতে সর্বাধিক উপাদান খুঁজে বের করা।

উদাহরণ

যদি ইনপুট অ্যারে হয় {30, 40, 50, 10, 20} তাহলে সর্বাধিক উপাদান 50।

অ্যালগরিদম

  • সর্বোচ্চ উপাদান হল একমাত্র উপাদান যার পরেরটি এর থেকে ছোট। যদি পরবর্তী কোন ছোট উপাদান না থাকে, তাহলে কোন ঘূর্ণন নেই অর্থাৎ শেষ উপাদানটি সর্বাধিক
  • আমরা মধ্য - 1 এবং মধ্য + 1 এ উপাদানগুলির সাথে তুলনা করে মধ্যম উপাদানের জন্য এই শর্তটি পরীক্ষা করি৷ যদি সর্বাধিক উপাদানটি মধ্য - 1 এবং মধ্য + 1 তে উপাদানগুলির সাথে হয়৷ যদি সর্বাধিক উপাদানটি মধ্যবর্তী না হয় (মধ্য বা না হয়) mid + 1), তারপর সর্বাধিক উপাদানটি হয় বাম অর্ধেক বা ডান অর্ধে −
    • যদি মধ্যম উপাদানটি শেষ উপাদানটির চেয়ে বড় হয়, তাহলে সর্বাধিক উপাদানটি বাম অর্ধেকের মধ্যে থাকে
    • অন্যথায় সর্বোচ্চ উপাদানটি ডান অর্ধে থাকে

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int getMaxinSortedAndRorated(int *arr, int lont high) {
   if (high < low) {
      return arr[0];
   }
   if (high == low) {
      return arr[high];
   }
   int mid = low + (high - low) / 2;
   if (mid < high && arr[mid + 1] < arr[) {
      return arr[mid];
   }
   if (mid > low && arr[mid] < arr[mid - {
      return arr[mid - 1];
   }
   if (arr[low] > arr[mid]) {
      return getMaxinSortedAndRoratrr, low, mid - 1);
   } else {
      return getMaxinSortedAndRoratrr, mid + 1, high);
   }
}
int main() {
   int arr[] = {30, 40, 50, 10, 20};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Maximum element = " << getMaortedAndRorated(arr, 0, n - 1) << endl;
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Maximum element = 5

  1. C++ এ একটি অ্যারেতে একটি জোড়ার সর্বোচ্চ বিটওয়াইজ এবং মান

  2. কিভাবে C++ এ STL ব্যবহার করে একটি অ্যারের সর্বনিম্ন এবং সর্বোচ্চ উপাদান খুঁজে বের করবেন?

  3. C++ এ সাজানো অ্যারেতে সংখ্যাগরিষ্ঠ উপাদানের জন্য পরীক্ষা করুন

  4. পাইথনে একটি অ্যারে সাজানো এবং ঘোরানো হয়েছে কিনা তা পরীক্ষা করুন