जब पुनरावर्तन का उपयोग करके द्विआधारी खोज को लागू करने की आवश्यकता होती है, तो एक विधि परिभाषित की जा सकती है, जो यह जांचती है कि सूचकांक 'उच्च' सूचकांक 'निम्न' से अधिक है या नहीं। 'मध्य' चर पर मौजूद मान के आधार पर, तत्व को खोजने के लिए फ़ंक्शन को फिर से बुलाया जाता है।
एक सूची का उपयोग विषम मूल्यों को संग्रहीत करने के लिए किया जा सकता है (अर्थात किसी भी डेटा प्रकार का डेटा जैसे पूर्णांक, फ़्लोटिंग पॉइंट, स्ट्रिंग्स, और इसी तरह)।
नीचे उसी के लिए एक प्रदर्शन है -
उदाहरण
def binary_search(my_list, low, high, elem): if high >= low: mid = (high + low) // 2 if my_list[mid] == elem: return mid elif my_list[mid] > elem: return binary_search(my_list, low, mid - 1, elem) else: return binary_search(my_list, mid + 1, high, elem) else: return -1 my_list = [ 1, 9, 11, 21, 34, 54, 67, 90 ] elem_to_search = 1 print("The list is") print(my_list) my_result = binary_search(my_list,0,len(my_list)-1,elem_to_search) if my_result != -1: print("Element found at index ", str(my_result)) else: print("Element not found!")
आउटपुट
The list is [1, 9, 11, 21, 34, 54, 67, 90] Element found at index 0
स्पष्टीकरण
- 'बाइनरी_सर्च' नामक एक फ़ंक्शन परिभाषित किया गया है।
- यह सूची, 'निम्न' चर, 'उच्च' चर और पैरामीटर के रूप में खोजे जाने वाले तत्व को लेता है।
- फिर, चर 'मध्य' को 'उच्च' और 'निम्न' चरों का औसत निर्दिष्ट किया जाता है।
- यदि 'मध्य' का तत्व उसी तत्व के समान है जिसे खोजने की आवश्यकता है, तो उसे वापस कर दिया जाता है।
- अन्यथा, यदि 'मध्य' स्थिति वाला तत्व खोजे जाने वाले तत्व से बड़ा है, तो विभिन्न मापदंडों के सेट को पास करके फ़ंक्शन को फिर से कॉल किया जाता है।
- अन्यथा यदि 'मध्य' स्थिति में तत्व खोजे जाने वाले तत्व से कम है, तो पैरामीटर के एक अलग सेट को पास करके फ़ंक्शन को फिर से कॉल किया जाता है।
- अब सूची को परिभाषित किया गया है, और इस सूची को पैरामीटर के रूप में पास करके फ़ंक्शन को कॉल किया जाता है।
- इस ऑपरेशन का डेटा एक वेरिएबल में स्टोर किया जाता है।
- यह चर वह आउटपुट है जो कंसोल पर प्रदर्शित होता है।