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

बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी में पीक एलिमेंट खोजने के लिए C++ प्रोग्राम


इस C++ प्रोग्राम में, हम बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी में एक पीक एलिमेंट ढूंढते हैं। यह एल्गोरिदम पहले मिले पीक को परिणाम के रूप में लौटाता है और इसकी समय जटिलता O(log n) है।

एल्गोरिदम

शुरुआत    PeakElement() फ़ंक्शन में 'arr' डेटा की सरणी, प्रारंभ और अंत इंडेक्स आर्गुमेंट सूची में होते हैं।    सरणी के उपभाग का मध्य निर्दिष्ट करें।    यदि मध्य सीमा इंडेक्स पर है और मध्य का मान उसके पड़ोसी से अधिक है तो मध्य को पीक के रूप में लौटाएं।    यदि मध्य का मान उसके दोनों पड़ोसियों से अधिक है तो मध्य को पीक के रूप में लौटाएं।    यदि मध्य के दाईं ओर का मान मध्य से अधिक है तो सरणी के दूसरे उपभाग को PeakElement() में आर्गुमेंट के रूप में भेजें।    यदि मध्य के बाईं ओर का मान मध्य से अधिक है तो सरणी के पहले उपभाग को PeakElement() में आर्गुमेंट के रूप में भेजें। अंत

उदाहरण कोड

#include<iostream> using namespace std; int PeakElement(int a[], int start, int end) {    int i, mid;    mid = (end+start+1)/2;    if((a[mid] > a[mid+1] && mid == start)||(a[mid] > a[mid-1] && mid == end)) {       return a[mid];    } else if(a[mid] < a[mid-1] && a[mid] > a[mid+1]) {       return a[mid];    } else if(a[mid] <= a[mid+1]) {       return PeakElement(a, mid+1, end);    } else if(a[mid] <= a[mid-1]) {       return PeakElement(a, start,mid-1);    } } int main() {    int n, i, p;    cout<<"\nडेटा एलिमेंट की संख्या दर्ज करें: ";    cin>>n;    int arr[n];    for(i = 0; i < n; i++) {       cout<<"एलिमेंट "<<i+1<<": ";       cin>>arr[i];    }    p = PeakElement(arr, 0, n-1);    cout<<"\nदी गई सरणी का पीक एलिमेंट है: "<<p;    return 0; }

आउटपुट

डेटा एलिमेंट की संख्या दर्ज करें: 5 एलिमेंट 1 दर्ज करें: 45 एलिमेंट 2 दर्ज करें: 26 एलिमेंट 3 दर्ज करें: 70 एलिमेंट 4 दर्ज करें: 60 एलिमेंट 5 दर्ज करें: 15 दी गई सरणी का पीक एलिमेंट है: 70

  1. C++ में बाइनरी सर्च ट्री में निकटतम तत्व खोजें C++ में बाइनरी सर्च ट्री में निकटतम तत्व खोजें

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) और एक लक्ष्य मान है; हमें उस दिए गए BST में k मान खोजने हैं जो लक्ष्य के सबसे निकट हैं। यहां लक्ष्य मान एक फ्लोटिंग-पॉइंट संख्या है। हम मान सकते हैं कि k हमेशा वैध है, और k ≤ कुल नोड्स। उदाहरण के लिए, यदि इनपुट इस तरह का है: लक्ष्य = 3.714286, और k = 2,

  1. C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना

    यहां हम देखेंगे कि C++ का उपयोग करके एलिप्स का क्षेत्रफल कैसे प्राप्त किया जाए। एलिप्स के विभिन्न भाग होते हैं। ये नीचे दिए गए हैं।मुख्य बिंदुविवरणसेंटरएलिप्स का केंद्र। यह उन लाइन सेगमेंट्स का भी केंद्र है जो दो फोकी को जोड़ते हैं।मेजर एक्सिसएलिप्स का सबसे लंबा व्यासnmembयह एलिमेंट्स की संख्या है,

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>