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

सी++ प्रोग्राम स्व-आयोजन सूचियों का उपयोग करके खोज करने के लिए

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

एल्गोरिदम

Begin
   Function FibonacciSearch().
   Calculate the mid value using ‘start+fib[index-2]’ expression.
   If the chosen item is equal to the value at mid index, print result and return to main.
   If it is lesser than the value at mid index, proceed with the left sub-array.
   If it is more than the value at mid index, proceed with the right sub-array.
   If the calculated mid value is equal to either start or end then the item is not found in the array.
End

उदाहरण कोड

#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 The list state is :";
   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<<"\nItem found at head node";
      flag = 5;
      Display(head);
      return head;
   } else {
      while((temp->next)->next != NULL) {
         if((temp->next)->d == item) {
            cout<<"\nItem found";
            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<<"\nItem not found.";
   }
   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<<"\nEnter the Element to be searched: ";
      cin>>n;
      head = SearchItem(head, n);
      cout<<"\n\n\tDo you want to search more...enter choice(y/n)?";
      cin>>ch;
      if(ch == 'y' || ch == 'Y')
         goto up;
      return 0;
}

आउटपुट

The list state is :->1->2->3->4->5->6->7->8->9->10->11->12->13->14->15->16->17->18
Enter the Element to be searched: 7
Item found
The list state is :->7->1->2->3->4->5->6->8->9->10->11->12->13->14->15->16->17->18
Do you want to search more...enter choice(y/n)?y
Enter the Element to be searched: 20
Item not found.
Do you want to search more...enter choice(y/n)?n

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

    यहां हम देखेंगे कि कुछ तृतीय-पक्ष एप्लिकेशन जैसे नोटपैड या सी ++ प्रोग्राम का उपयोग करके कुछ भी कैसे शुरू किया जाए। यह प्रोग्राम बहुत सरल है, हम इस कार्य को करने के लिए कमांड प्रॉम्प्ट कमांड का उपयोग कर सकते हैं। हम सिस्टम () फ़ंक्शन के अंदर एप्लिकेशन का नाम पास करेंगे। यह उसके अनुसार खुल जाएगा। उद

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

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

  1. सी ++ प्रोग्राम रिकर्सन का उपयोग करके जीसीडी खोजने के लिए

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