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

C++ में अनुमत डुप्लीकेट के साथ एक सरणी में एक निश्चित बिंदु खोजें

यहां हम देखेंगे कि किसी दिए गए सरणी में निश्चित बिंदु कैसे खोजें। सरणी में एक तत्व को निश्चित बिंदु के रूप में दर्शाया जाएगा यदि मान उसके सूचकांक के समान है। यदि कोई है तो यह प्रोग्राम मान लौटाएगा, अन्यथा -1 लौटाएगा। सरणी ऋणात्मक संख्याएँ भी धारण कर सकती है। और डेटा तत्वों को क्रमबद्ध किया जाता है। यहां सरणी में डुप्लिकेट तत्वों की अनुमति है।

यहाँ हम O(log n) समय में इस समस्या को हल करने के लिए बाइनरी सर्च दृष्टिकोण का उपयोग करेंगे। लेकिन हमें कुछ संशोधन की आवश्यकता है, यदि सामान्य बाइनरी खोज का उपयोग किया जाता है, तो यह डुप्लिकेट तत्वों के लिए विफल हो सकता है। बाईं ओर चेक करने के लिए, हमें न्यूनतम (मध्य - 1, मिडवैल्यू) से शुरू करना होगा, और दाईं ओर चेक करने के लिए, हमें अधिकतम (मध्य + 1, मिडवैल्यू) से शुरू करना होगा।

उदाहरण

#include<iostream>
using namespace std;
int getFixedPoint(int arr[], int left, int right) {
   if (right < left)
      return -1;
   int mid = (left + right) / 2;
   int midValue = arr[mid];  
   if (mid == arr[mid])
      return mid;
   int leftindex = min(mid - 1, midValue);
   int l = getFixedPoint(arr, left, leftindex);
   if (l >= 0)
      return l;
   int rightindex = max(mid + 1, midValue);
   int r = getFixedPoint(arr, rightindex, right);
   return r;
}
int main() {
   int arr[] = {-10, -5, 2, 2, 2, 3, 4, 7, 10, 12, 17};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout<<"Fixed Point: "<< getFixedPoint(arr, 0, n-1);
}

आउटपुट

Fixed Point: 2

  1. सी ++ का उपयोग कर स्ट्रक्चर सरणी में अधिकतम खोजें।

    यहां हम देखेंगे कि स्ट्रक्चर ऐरे में अधिकतम कैसे प्राप्त करें। मान लीजिए कि नीचे की तरह एक संरचना दी गई है। हमें उस संरचना प्रकार की सरणी का अधिकतम तत्व खोजना होगा। struct Height{    int feet, inch; }; विचार सीधे आगे है। हम सरणी को पार करेंगे, और इंच में सरणी तत्व के अधिकतम मान का ट्रैक र

  1. C++ में दिए गए सरणी में एक निश्चित बिंदु (सूचकांक के बराबर मान) खोजें

    यहां हम देखेंगे कि किसी दिए गए सरणी में निश्चित बिंदु कैसे खोजें। सरणी में एक तत्व को निश्चित बिंदु के रूप में दर्शाया जाएगा यदि मान उसके सूचकांक के समान है। यदि कोई है तो यह प्रोग्राम मान लौटाएगा, अन्यथा -1 लौटाएगा। सरणी ऋणात्मक संख्याएँ भी धारण कर सकती है। और डेटा तत्वों को क्रमबद्ध किया जाता है।

  1. सी++ में एक सरणी में अधिकतम जीसीडी के साथ जोड़ी खोजें

    मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी है। हमारा काम सरणी से पूर्णांकों की जोड़ी को खोजना है, जहां GCD मान अधिकतम है। मान लीजिए A ={1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) में GCD 2 है, अन्य GCD मान 2 से कम हैं। इस समस्या को हल करने के लिए, हम प्रत्येक तत्व के भाजक की गिनती को