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

संदर्भ की स्थानीयता के आधार पर खोज करने के लिए C++ प्रोग्राम

संदर्भ के स्थान के आधार पर खोजना, मेमोरी एक्सेस पैटर्न पर निर्भर करता है डेटा तत्वों को पुनः आवंटित किया जाता है।

यहां किसी तत्व को खोजने के लिए रैखिक खोज विधि का उपयोग किया जाता है।

एल्गोरिदम

Begin
   int find(int *intarray, int n, int item)
   intialize comparisons = 0
   for i = 0 to n-1
      Increase comparisons
   if(item == intarray[i])
      Print element with its index
   break
   if(i == n-1)
      Print element not found
   return -1
   Print Total comparisons
   For j = i till i>0
      intarray[j] = intarray[j-1]
      intarray[0] = item
   return 0
End
के लिए

उदाहरण

#include<iostream>
using namespace std;
// A function to perform linear search.
// this method makes a linear search.
int find(int *intarray, int n, int item) {
   int i;
   int comparisons = 0;
   // navigate through all items
   for(i = 0;i<n;i++) {
      // count the comparisons made comparisons++;
      // if item found, break the loop
      if(item == intarray[i]) {
         cout<<"element found at:"<<i<<endl;
         break;
      }
      // If index reaches to the end then the item is not there.
      if(i == n-1) {
         cout<<"\nThe element not found.";
         return -1;
      }
   }
   printf("Total comparisons made: %d", comparisons);
   // Shift each element before matched item.
   for(int j = i; j > 0; j--)
      intarray[j] = intarray[j-1];
      // Put the recently searched item at the beginning of the data array.
      intarray[0] = item;
   return 0;
}
int main() {
   int intarray[20]={1,2,3,4,6,7,9,11,12,14,15,16,26,19,33,34,43,45,55,66};
   int i,n;
   char ch;
   // print initial data array.
   cout<<"\nThe array is: ";
   for(i = 0; i < 20;i++)
      cout<<intarray[i]<<" ";
   up:
   cout<<"\nEnter the Element to be searched: ";
   cin>>n;
   // Print the updated data array.
   if(find(intarray,20, n) != -1) {
      cout<<"\nThe array after searching is: ";
      for(i = 0; i <20;i++)
         cout<<intarray[i]<<" ";
   }
   cout<<"\n\nWant to search more.......yes/no(y/n)?";
   cin>>ch;
   if(ch == 'y' || ch == 'Y')
      goto up;
   return 0;
}

आउटपुट

The array is: 1 2 3 4 6 7 9 11 12 14 15 16 26 19 33 34 43 45 55 66
Enter the Element to be searched: 26
element found at:12
Total comparisons made: 13
The array after searching is: 26 1 2 3 4 6 7 9 11 12 14 15 16 19 33 34 43 45 55 66

Want to search more.......yes/no(y/n)?y

Enter the Element to be searched: 0

The element not found.

Want to search more.......yes/no(y/n)?n

  1. C++ प्रोग्राम यूनिफ़ॉर्म बाइनरी सर्च करने के लिए

    यूनिफ़ॉर्म बाइनरी सर्च में यहां हम लुकअप टेबल का उपयोग करके बाइनरी सर्च को लागू करते हैं। यह द्विआधारी खोज में एक सुधार है क्योंकि टेबल लुकअप एक बदलाव और जोड़ से तेज है। इस दृष्टिकोण की समय जटिलता O(log(n)) है। एल्गोरिदम Begin    Assign the data to the array in a sorted manner.   &nbs

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

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

  1. सी ++ प्रोग्राम शेकर सॉर्ट करने के लिए

    दिए गए डेटा को सॉर्ट करने के लिए शेकर सॉर्ट का उपयोग किया जाता है। बबल सॉर्ट के विपरीत, शेकर सॉर्ट, दोनों दिशाओं में सरणी को ऑर्डर करता है। इस एल्गोरिथम की सबसे खराब जटिलता O(n^2) है। एल्गोरिदम Begin    ShakerSort() function has ‘arr’ the array of data and ‘n’ the n