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

सेल्फ-ऑर्गेनाइजिंग लिस्ट का उपयोग करके खोज करने के लिए C++ प्रोग्राम


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

एल्गोरिदम

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

उदाहरण कोड

#include<iostream> using namespace std; struct node {    int d;    node *next; }; node* CreateNode(int d) {    node *newnode = new node;    newnode->d = d;    newnode->next = NULL;    return newnode; } node* InsertIntoList(node *head, int d) {    node *temp = CreateNode(d);    node *t = new node;    t = head;    if(head == NULL) {      head = temp;      return head;    } else {       while(t->next != NULL)       t = t->next;       t->next = temp;    }    return head; } void Display(node *head) {    node *temp = new node;    temp = head;    cout<<"\n सूची की स्थिति है :";    while(temp->next != NULL) {       cout<<"->"<<temp->d;       temp = temp->next;    } } node* SearchItem(node *head, int item) {    int flag = 0;    node *temp = new node;    node *t = new node;    temp = head;    if(temp->d == item) {       cout<<"\nआइटम हेड नोड पर मिला";       flag = 5;       Display(head);       return head;    } else {       while((temp->next)->next != NULL) {          if((temp->next)->d == item) {             cout<<"\nआइटम मिला";             flag = 5;             break;          }          temp = temp->next;       }       t = (temp->next)->next;       (temp->next)->next = head;       head = temp->next;       temp->next = t;       if(flag == 5)          Display(head);       else          cout<<"\nआइटम नहीं मिला।";    }    return head; } int main() {    int i, n;    char ch;    node *head = new node;    head = NULL;    for(i = 1; i < 20; i++)       head = InsertIntoList(head, i);       Display(head);    up:       cout<<"\nखोजे जाने वाले एलिमेंट को दर्ज करें: ";       cin>>n;       head = SearchItem(head, n);       cout<<"\n\n\tक्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?";       cin>>ch;       if(ch == 'y' || ch == 'Y')          goto up;       return 0; }

आउटपुट

सूची की स्थिति है :->1->2->3->4->5->6->7->8->9->10->11->12->13->14->15->16->17->18 खोजे जाने वाले एलिमेंट को दर्ज करें: 7 आइटम मिला सूची की स्थिति है :->7->1->2->3->4->5->6->8->9->10->11->12->13->14->15->16->17->18 क्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?y खोजे जाने वाले एलिमेंट को दर्ज करें: 20 आइटम नहीं मिला। क्या आप और खोजना चाहते हैं...पसंद दर्ज करें (y/n)?n

  1. C++ प्रोग्राम का उपयोग करके प्रोग्राम कैसे लॉन्च करें? C++ प्रोग्राम का उपयोग करके प्रोग्राम कैसे लॉन्च करें?

    सिस्टम कमांड का उपयोग करके एप्लिकेशन लॉन्च करना यहां हम देखेंगे कि C++ प्रोग्राम का उपयोग करके नोटपैड जैसे किसी थर्ड-पार्टी एप्लिकेशन को कैसे शुरू किया जाए। यह प्रोग्राम बहुत सरल है; हम कमांड प्रॉम्प्ट कमांड का उपयोग करके यह कार्य कर सकते हैं। हम system() फ़ंक्शन के अंदर एप्लिकेशन नाम पास करेंगे। य

  1. - C++ में मैट्रिक्स गुणा करने का प्रोग्राम

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है। मैट्रिक्स का एक उदाहरण निम्नलिखित है। एक 3*2 मैट्रिक्स में 3 पंक्तियाँ और 2 कॉलम होते हैं जैसा कि नीचे दिखाया गया है: 8 1 4 9 5 6 मैट्रिक्स गुणा करने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include<iostream

  1. - C++ में रिकर्सन का उपयोग करके G.C.D. (महत्तम समापवर्तक) खोजने का प्रोग्राम

    दो संख्याओं का महत्तम समापवर्तक (GCD) वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है। उदाहरण के लिए: मान लें हमारे पास निम्नलिखित दो संख्याएँ हैं: 45 और 27 63 = 7 * 3 * 3 42 = 7 * 3 * 2 तो, 63 और 42 का GCD 21 है रिकर्सन का उपयोग करके दो संख्याओं का GCD खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण