जंप सर्च तकनीक ऑर्डर की गई सूचियों के लिए भी काम करती है। यह एक ब्लॉक बनाता है और उस ब्लॉक में तत्व को खोजने की कोशिश करता है। यदि आइटम ब्लॉक में नहीं है, तो यह पूरे ब्लॉक को स्थानांतरित कर देता है। ब्लॉक का आकार सूची के आकार पर आधारित होता है। यदि सूची का आकार 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