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

रिकर्सन के बिना बाइनरी सर्च लागू करने के लिए 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

व्याख्या

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

    बाइनरी खोज क्या है? बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है। मुख्य बिंदु केवल क्रमबद्ध सरणी पर काम करता है समय जटिलता: O(log n) दुनिया के सभी नाम क्रमबद्ध हों तो

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

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. पायथन प्रोग्राम में लीनियर सर्च पायथन प्रोग्राम में लीनियर सर्च

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