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

पुनरावर्तन के बिना बाइनरी खोज को लागू करने के लिए पायथन कार्यक्रम

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

फिर इसकी तुलना उस मूल्य से की जाती है जिसके लिए जाँच करने की आवश्यकता होती है। यदि यह पाया जाता है, तो मान वापस कर दिया जाता है। वरना, -1 लौटा दिया जाता है।

यह याद रखना महत्वपूर्ण है कि द्विआधारी खोज केवल क्रमबद्ध तत्वों पर काम करती है, या तो आरोही या अवरोही क्रम।

एक सूची का उपयोग विषम मूल्यों को संग्रहीत करने के लिए किया जा सकता है (अर्थात किसी भी डेटा प्रकार का डेटा जैसे पूर्णांक, फ़्लोटिंग पॉइंट, स्ट्रिंग्स, और इसी तरह)।

नीचे उसी के लिए एक प्रदर्शन है -

उदाहरण

def binary_search(my_list, elem):
   low = 0
   high = len(my_list) - 1
   mid = 0
   while low <= high:
      mid = (high + low) // 2
      if my_list[mid] < elem:
         low = mid + 1
      elif my_list[mid] > elem:
         high = mid - 1
      else:
         return mid
   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, 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

स्पष्टीकरण

  • 'बाइनरी_सर्च' नाम की एक विधि परिभाषित की गई है जो पैरामीटर के रूप में सूची और खोजे जाने वाले तत्व को लेती है।
  • एक वैरिएबल लो को 0 और वैरिएबल मिड को 0 को असाइन किया गया है।
  • वेरिएबल हाई को लिस्ट-1 की लंबाई असाइन की गई है।
  • बिटवाइज फ्लोर डिवीजन 'मिड' वेरिएबल के लिए वैल्यू प्राप्त करने के लिए किया जाता है, केवल तभी जब वैल्यू 'लो' वैल्यू 'हाई' से कम या उसके बराबर हो
  • सबसे पहले तत्व को निम्न से मध्य अनुक्रमणिका में खोजा जाता है, यदि मान मध्य अनुक्रमणिका में मौजूद मान से कम है।
  • अन्यथा तत्व को मध्य से उच्च सूचकांक में खोजा जाता है, यदि मान मध्य से अधिक और उच्च से कम है।
  • अब, एक सूची परिभाषित की गई है।
  • उपरोक्त सूची को पैरामीटर के रूप में पास करके विधि को कॉल किया जाता है।
  • इस ऑपरेशन का डेटा एक वेरिएबल में स्टोर किया जाता है।
  • यह चर वह आउटपुट है जो कंसोल पर प्रदर्शित होता है।

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

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

  1. लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N के साथ उपलब्ध सभी संभावित भिन्न बाइनरी स्ट्रिंग्स को गिनने की आवश्यकता है ताकि स्ट्रिंग में कोई क्रमागत 1 मौजूद न हो। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देख

  1. पायथन प्रोग्राम में रैखिक खोज

    इस लेख में, हम लीनियर सर्च और पायथन 3.x में इसके कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम दिए गए एआर के सबसे बाएं तत्व से शुरू करें [] और एक-एक करके तत्व एक्स की तुलना एआर के प्रत्येक तत्व के साथ करें [] यदि x किसी भी तत्व से मेल खाता है, तो अनुक्रमणिका मान लौटाएँ। अगर x arr[] म