Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में क्रमबद्ध और घुमाए गए सरणी में अधिकतम तत्व

विवरण

किसी अज्ञात बिंदु पर घुमाए गए अलग-अलग तत्वों की एक क्रमबद्ध सरणी को देखते हुए, कार्य इसमें अधिकतम तत्व ढूंढना है।

उदाहरण

यदि इनपुट सरणी {30, 40, 50, 10, 20} है तो अधिकतम तत्व 50 है।

एल्गोरिदम

  • अधिकतम तत्व एकमात्र ऐसा तत्व है जिसका अगला तत्व उससे छोटा है। यदि कोई अगला छोटा तत्व नहीं है, तो कोई रोटेशन नहीं है यानी अंतिम तत्व अधिकतम है
  • हम मध्य तत्व के लिए इस स्थिति की जांच मध्य - 1 और मध्य + 1 के तत्वों के साथ तुलना करके करते हैं। यदि अधिकतम तत्व मध्य -1 और मध्य + 1 पर तत्वों के साथ है। यदि अधिकतम तत्व मध्य में नहीं है (न तो मध्य और न ही मध्य और न ही मध्य + 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. सी ++ में एसटीएल का उपयोग करके ऐरे का न्यूनतम और अधिकतम तत्व कैसे खोजें?

    यहां हम देखेंगे कि किसी सरणी से अधिकतम और न्यूनतम तत्व कैसे खोजें। तो यदि सरणी [12, 45, 74, 32, 66, 96, 21, 32, 27] की तरह है, तो अधिकतम तत्व 96 है, और न्यूनतम तत्व 12 है। हम max_element () फ़ंक्शन और min_element () का उपयोग कर सकते हैं फ़ंक्शन, एल्गोरिथम में मौजूद है। हेडर फ़ाइल क्रमशः अधिकतम और न्

  1. C++ में क्रमबद्ध सरणी में अधिकांश तत्व की जाँच करें

    7/2 देख सकते हैं। हम सरणी में x की घटनाओं की गणना कर सकते हैं, और यदि संख्या n/2 से अधिक है, तो उत्तर सही होगा, अन्यथा गलत। उदाहरण #include <iostream> #include <stack> using namespace std; bool isMajorityElement(int arr[], int n, int x){    int freq = 0;    for(int i

  1. जांचें कि क्या किसी सरणी को पायथन में क्रमबद्ध और घुमाया गया है

    मान लीजिए कि हमारे पास n अद्वितीय मानों की एक सरणी है। हमें यह जांचना होगा कि क्या यह ऐरे सॉर्ट किया गया है और एंटी-क्लॉकवाइज घुमाया गया है। यहां कम से कम एक घुमाव की आवश्यकता होती है, इसलिए पूरी तरह से क्रमबद्ध सरणी को क्रमबद्ध और घुमाया नहीं माना जाता है। इसलिए, यदि इनपुट संख्या =[4,5,6,8,1,3] की