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

फाइबोनैचि संख्याओं की सहायता से डिवाइड एंड कंकर का उपयोग करके सॉर्टेड अनुक्रम खोजने के लिए C++ प्रोग्राम


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

एल्गोरिदम

शुरुआत    डेटा को सॉर्टेड तरीके से सरणी में निर्दिष्ट करें।    खोजे जाने वाले एलिमेंट का इनपुट लें।    FibonacciSearch() फ़ंक्शन कॉल करें।    'start+fib[index-2]' एक्सप्रेशन का उपयोग करके मिड मान की गणना करें।    यदि चुना गया आइटम मिड इंडेक्स पर मान के बराबर है, तो परिणाम प्रिंट करें और मेन पर लौटें।    यदि यह मिड इंडेक्स पर मान से कम है, तो बाएं उप-सरणी के साथ आगे बढ़ें।    यदि यह मिड इंडेक्स पर मान से अधिक है, तो दाएं उप-सरणी के साथ आगे बढ़ें।    यदि गणना किया गया मिड मान स्टार्ट या एंड के बराबर है तो आइटम सरणी में नहीं मिला। अंत

उदाहरण कोड

#include<iostream> using namespace std; void FibonacciSearch(int *a, int start, int end, int *fib, int index, int item) {    int i, mid;    mid = start+fib[index-2];    if(item == a[mid]) {       cout<<"\n आइटम "<<mid<<" इंडेक्स पर मिला।";       return;    } else if(item == a[start]) {       cout<<"\n आइटम "<<start<<" इंडेक्स पर मिला।";       return;    } else if(item == a[end]) {       cout<<"\n आइटम "<<end<<" इंडेक्स पर मिला।";       return;    } else if(mid == start || mid == end) {       cout<<"\nएलिमेंट नहीं मिला";       return;    } else if(item > a[mid])          FibonacciSearch(a, mid, end, fib, index-1, item);       else          FibonacciSearch(a, start, mid, fib, index-2, item);    }    main() {       int n, i, fib[20], a[10]={3, 7, 55, 86, 7, 15, 26, 30, 46, 95};       char ch;       fib[0] = 0;       fib[1] = 1;       i = 1;       while(fib[i] < 10) {          i++;          fib[i] = fib[i-1] + fib[i-2];       }       up:          cout<<"\nखोजे जाने वाले एलिमेंट को दर्ज करें: ";          cin>>n;          FibonacciSearch(a, 0, 9, fib, i, n);          cout<<"\n\n\tक्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?";          cin>>ch;          if(ch == 'y' || ch == 'Y')             goto up;          return 0;    } }

आउटपुट

खोजे जाने वाले एलिमेंट को दर्ज करें: 26 आइटम 6 इंडेक्स पर मिला। क्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?y खोजे जाने वाले एलिमेंट को दर्ज करें: 45 आइटम नहीं मिला क्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?n

  1. C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना

    समस्या विवरण इस समस्या में, हमें एक रेखा के दो बिंदुओं के निर्देशांक दिए गए हैं: प्रारंभिक बिंदु A(xₐ, yₐ) और मध्य बिंदु M(xₘ, yₘ)। हमारा कार्य दिए गए एक छोर और मध्य बिंदु के साथ रेखा का दूसरा छोर खोजना है। उदाहरण इनपुट A = [1, 2], M = [3, 0] आउटपुट [5, -2] हल का दृष्टिकोण समस्या को हल करने के लिए

  1. - C++ प्रोग्राम इटरेशन का उपयोग करके फाइबोनैचि संख्याएं खोजने के लिए

    इटरेशन का उपयोग करके फाइबोनैचि श्रृंखला खोजने का एक उदाहरण निम्नलिखिक है। उदाहरण #include <iostream> using namespace std; void fib(int num) {    int x = 0, y = 1, z = 0;    for (int i = 0; i < num; i++) {       cout << x << " ";  

  1. - C++ प्रोग्राम रिकर्सन का उपयोग करके फाइबोनैचि संख्याएं खोजने के लिए

    रिकर्सन का उपयोग करके फाइबोनैचि श्रृंखला का एक उदाहरण निम्नलिखिक है। उदाहरण #include <iostream> using namespace std; int fib(int x) {    if((x==1)||(x==0)) {       return(x);    }else {       return(fib(x-1)+fib(x-2));    } } int main