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

सी ++ मानक टेम्पलेट लाइब्रेरी (एसटीएल) में बाइनरी सर्च


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

कार्य कर रहा है

एल्गोरिथम सॉर्ट किए गए सरणी के मध्य तत्व की तुलना उस तत्व से करता है जिसे खोजा जाना है।

यदि खोज तत्व बराबर . है मध्य तत्व में, फिर सूचकांक लौटाएं तत्व का।

यदि खोज तत्व अधिक है मध्य तत्व की तुलना में, बाएं उपसरणी में खोजें यानी उप सरणी मध्य के अगले तत्व से सरणी के अंत तक।

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

सिंटैक्स

मानक बाइनरी सॉर्ट के लिए कॉल, निम्न सिंटैक्स का उपयोग किया जाता है -

binary_search(start_address , end_address , element)

पैरामीटर

start_address सरणी के पहले तत्व का पता है।

end_address सरणी के अंतिम तत्व का पता है।

तत्व सरणी में पाया जाने वाला तत्व है।

वापसी

यह एक पूर्णांक देता है जिसका मान सरणी में तत्व की अनुक्रमणिका के बराबर होता है यदि अन्यथा 0 देता है।

उदाहरण

#include <algorithm>
#include <iostream>
using namespace std;
void printArray(int a[], int arraysize){
   for (int i = 0; i < arraysize; ++i)
      cout << a[i] << " ";
}
int main(){
   int arr[] = {1 , 5, 9, 7 , 3, 2 , 0 , 4};
   int sizeofarr = sizeof(arr)/sizeof(arr[0]);
   cout<<"The Element of array are :\n";
   printArray(arr , sizeofarr);
   cout<<"\nSorting Elements of array.";
   sort(arr , arr+sizeofarr);
   cout<<"\nSorted array is : ";
   printArray(arr, sizeofarr);
   cout<<"\nElement to be searched is 4";
   if(binary_search(arr , arr+sizeofarr , 4))
      cout<<"\nElement found ";
   else
      cout<<"\nElement not found";
}

आउटपुट

The Element of array are :
1 5 9 7 3 2 0 4
Sorting Elements of array.
Sorted array is : 0 1 2 3 4 5 7 9
Element to be searched is 4

  1. सी ++ में बाइनरी सर्च ट्री में निकटतम तत्व खोजें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री (BST) और दूसरा लक्ष्य मान है; हमें उस दिए गए BST में k मान ज्ञात करना है जो लक्ष्य के सबसे निकट है। यहां लक्ष्य मान एक फ़्लोटिंग-पॉइंट नंबर है। हम मान सकते हैं कि k हमेशा मान्य होता है, और k कुल नोड्स। तो, अगर इनपुट पसंद है लक्ष्य =3.714286, और k =2, तो

  1. सी ++ मानक टेम्पलेट लाइब्रेरी (एसटीएल) में प्राथमिकता कतार

    प्राथमिकता कतार प्राथमिकता वाले तत्वों के संग्रह को संग्रहीत करने के लिए एक सार डेटा प्रकार है जो किसी तत्व को उनकी प्राथमिकताओं के आधार पर सम्मिलित करने और हटाने का समर्थन करता है, अर्थात, पहली प्राथमिकता वाले तत्व को किसी भी समय हटाया जा सकता है। प्राथमिकता कतार तत्वों को उनके स्थान जैसे स्टैक, कत

  1. सी ++ प्रोग्राम में बाइनरी सर्च?

    द्विआधारी खोज, जिसे अर्ध-अंतराल खोज, लॉगरिदमिक खोज या बाइनरी चॉप के रूप में भी जाना जाता है, एक खोज एल्गोरिथ्म है जो एक क्रमबद्ध सरणी के भीतर लक्ष्य मान की स्थिति का पता लगाता है। बाइनरी खोज लक्ष्य मान की तुलना सरणी के मध्य तत्व से करती है। यदि वे समान नहीं हैं, तो आधा जिसमें लक्ष्य झूठ नहीं बोल सकत