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

C++ प्रोग्राम बाइनरी सर्च एप्रोच का उपयोग करके किसी सरणी के शिखर तत्व को खोजने के लिए

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

एल्गोरिदम

Begin
   PeakElement() function has ‘arr’ the array of data, start and end index in the argument list.
   Assign the mid of subpart of the array.
   If mid is at the boundary index and value at mid is higher than its neighbor then return mid as peak.
   If the value at mid is greater than both of its neighbors then return mid as peak.
   If the value at the right of mid is greater than mid then send second sub-part of the array into PeakElement() as argument.
   If the value at the left of mid is greater than mid then send first sub-part of the array into PeakElement() as argument.
End

उदाहरण कोड

#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<<"\nEnter the number of data element: ";
   cin>>n;
   int arr[n];
   for(i = 0; i < n; i++) {
      cout<<"Enter element "<<i+1<<": ";
      cin>>arr[i];
   }
   p = PeakElement(arr, 0, n-1);
   cout<<"\nThe peak element of the given array is: "<<p;
   return 0;
}

आउटपुट

Enter the number of data element: 5
Enter element 1: 45
Enter element 2: 26
Enter element 3: 70
Enter element 4: 60
Enter element 5: 15
The peak element of the given array is: 70

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

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

  1. C++ का प्रयोग करके दीर्घवृत्त का क्षेत्रफल ज्ञात करने का कार्यक्रम

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

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

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