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

पायथन में दिए गए बिटोनिक अनुक्रम में बिटोनिक बिंदु खोजें

मान लीजिए हमारे पास एक बिटोनिक अनुक्रम है, हमें इसमें बिटोनिक पॉइंट ढूंढना है। जैसा कि हम जानते हैं कि बिटोनिक अनुक्रम संख्याओं का एक क्रम है जो पहले सख्ती से बढ़ रहा है फिर एक निश्चित बिंदु के बाद यह सख्ती से घट रहा है। यह बिंदु बिटोनिक बिंदु है। केवल बढ़ते या घटते क्रम के लिए, बिटोनिक बिंदु उपलब्ध नहीं हैं।

इसलिए, यदि इनपुट [7, 8, 9, 12, 10, 6, 3, 2] जैसा है, तो आउटपुट 12

होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • फ़ंक्शन को परिभाषित करें बाइनरी_सर्च(सरणी, एल, आर)
  • यदि l <=r, तो −
    • एम :=(एल + आर) / /2
  • अगर सरणी [एम ​​-1] <सरणी [एम] और सरणी [एम]> सरणी [एम ​​+ 1], तो -
    • वापसी एम
  • अगर सरणी[m] <सरणी[m + 1], तो −
    • वापसी बाइनरी_सर्च (सरणी, एम + 1, आर)
  • अन्यथा
    • रिटर्न बाइनरी_सर्च(सरणी, एल, एम -1)
  • वापसी -1

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def binary_search(array, l, r):
   if (l <= r):
      m = (l + r) // 2;
      if (array[m - 1] < array[m] and array[m] > array[m + 1]):
         return m;
      if (array[m] < array[m + 1]):
         return binary_search(array, m + 1,r);
      else:
         return binary_search(array, l, m - 1);
   return -1;
array = [7, 8, 9, 12, 10, 6, 3, 2]
n = len(array);
index = binary_search(array, 1, n-2);
if (index != -1):
   print(array[index]);

इनपुट

[7, 8, 9, 12, 10, 6, 3, 2]

आउटपुट

12

  1. दिए गए सरणी के किसी भी अनुक्रम का अधिकतम आकार खोजने का कार्यक्रम जहां प्रत्येक जोड़ी पायथन में अच्छी है

    मान लीजिए कि हमारे पास आकार n का अनुक्रम संख्या है। हमें अंकों के बाद के अधिकतम आकार का पता लगाना है जिसमें प्रत्येक जोड़ी (p, q) एक अच्छी जोड़ी है? एक पैट को अच्छा जोड़ा कहा जाता है यदि और केवल यदि वह इनमें से कम से कम एक शर्त रखता है:1. पी के विशिष्ट अभाज्य भाजक की संख्या की समता बी के बराबर है। उ

  1. पायथन प्रोग्राम में सरणी का योग ज्ञात करें

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

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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