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

कूदो खोज


जंप सर्च तकनीक ऑर्डर की गई सूचियों के लिए भी काम करती है। यह एक ब्लॉक बनाता है और उस ब्लॉक में तत्व को खोजने की कोशिश करता है। यदि आइटम ब्लॉक में नहीं है, तो यह पूरे ब्लॉक को स्थानांतरित कर देता है। ब्लॉक का आकार सूची के आकार पर आधारित होता है। यदि सूची का आकार n है तो ब्लॉक का आकार n होगा। एक सही ब्लॉक खोजने के बाद यह एक रैखिक खोज तकनीक का उपयोग करके आइटम को ढूंढता है। जंप सर्च अपने प्रदर्शन के अनुसार रैखिक खोज और बाइनरी सर्च के बीच होता है।

जंप सर्च तकनीक की जटिलता

  • समय जटिलता:हे(√n)
  • अंतरिक्ष जटिलता:O(1)

इनपुट और आउटपुट

Input:
A sorted list of data:
10 13 15 26 28 50 56 88 94 127 159 356 480 567 689 699 780 850 956 995
The search key 356
Output:
Item found at location: 11

एल्गोरिदम

jumpSearch(array, size, key)

इनपुट: एक क्रमबद्ध सरणी, सरणी का आकार और खोज कुंजी

आउटपुट - कुंजी का स्थान (यदि पाया जाता है), अन्यथा गलत स्थान।

Begin
   blockSize := √size
   start := 0
   end := blockSize
   while array[end] <= key AND end < size do
      start := end
      end := end + blockSize
      if end > size – 1 then
         end := size
   done
   for i := start to end -1 do
      if array[i] = key then
         return i
   done
   return invalid location
End

उदाहरण

#include<iostream>
#include<cmath>

using namespace std;
int jumpSearch(int array[], int size, int key) {
   int start = 0;
   int end = sqrt(size); //the square root of array length

   while(array[end] <= key && end < size) {
      start = end; //it it is not correct block then shift block
      end += sqrt(size);
      if(end > size - 1)
         end = size; //if right exceeds then bound the range
   }

   for(int i = start; i<end; i++) { //perform linear search in selected block
      if(array[i] == key)
         return i; //the correct position of the key
   }
   return -1;
}

int main() {
   int n, searchKey, loc;
   cout << "Enter number of items: ";
   cin >> n;
   int arr[n]; //create an array of size n
   cout << "Enter items: " << endl;

   for(int i = 0; i< n; i++) {
      cin >> arr[i];
   }

   cout << "Enter search key to search in the list: ";
   cin >> searchKey;
   if((loc = jumpSearch(arr, n, searchKey)) >= 0)
      cout << "Item found at location: " << loc << endl;
   else
      cout << "Item is not found in the list." << endl;
}

आउटपुट

Enter number of items: 20
Enter items:
10 13 15 26 28 50 56 88 94 127 159 356 480 567 689 699 780 850 956 995
Enter search key to search in the list: 356
Item found at location: 11

  1. HTML DOM इनपुट सर्च साइज प्रॉपर्टी

    HTML DOM इनपुट सर्च साइज प्रॉपर्टी का इस्तेमाल इनपुट सर्च फील्ड साइज एट्रीब्यूट वैल्यू को सेट करने या वापस करने के लिए किया जाता है। इसका उपयोग वर्णों के संदर्भ में खोज क्षेत्र की चौड़ाई को परिभाषित करने के लिए किया जाता है। डिफ़ॉल्ट चौड़ाई 20 वर्णों की होती है. सिंटैक्स − . के लिए वाक्य रचना निम्न

  1. सी++ में जंप गेम IV

    मान लीजिए कि हमारे पास arr नामक पूर्णांकों की एक सरणी है। हम शुरुआत में इंडेक्स 0 पर हैं। एक चरण में हम इंडेक्स i से i + x पर जा सकते हैं जहां:i + x =0. j जहां:arr[i] और arr[j] समान हैं और i और j समान नहीं हैं। यहाँ n सरणी का आकार है। सरणी के अंतिम सूचकांक तक पहुंचने के लिए हमें न्यूनतम चरणों की संख

  1. सी # में बाइनरी सर्च

    द्विआधारी खोज क्रमबद्ध सरणी पर कार्य करता है। मान की तुलना सरणी के मध्य तत्व से की जाती है। यदि समानता नहीं मिलती है, तो आधा भाग समाप्त हो जाता है जिसमें मूल्य नहीं होता है। इसी तरह दूसरे आधे हिस्से की तलाशी ली जाती है। यहाँ हमारे सरणी में मध्य तत्व है। मान लीजिए कि हमें 62 खोजने की जरूरत है, फिर ब