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

जांचें कि क्या किसी सरणी को पायथन में क्रमबद्ध और घुमाया गया है

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

इसलिए, यदि इनपुट संख्या =[4,5,6,8,1,3] की तरह है, तो आउटपुट सही होगा क्योंकि हम दो बार दक्षिणावर्त दिशा में घुमा सकते हैं तो इसे [1, 3, 4, 5, 6, 8].

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

  • min_element :=न्यूनतम अंक
  • min_index :=min_element का अंकों में सूचकांक
  • पहले_क्रमबद्ध:=सत्य
  • मैं के लिए 1 से min_index -1 की सीमा में, करो
    • यदि अंक [i] <अंक [i - 1], तो
      • पहले_क्रमबद्ध :=गलत
      • लूप से बाहर आएं
  • आफ्टर_सॉर्टेड :=ट्रू
  • मेरे लिए min_index + 1 से लेकर अंकों के आकार -1 तक की सीमा में
    • यदि अंक [i] <अंक [i - 1], तो
      • बाद_क्रमबद्ध :=गलत
      • लूप से बाहर आएं
  • अगर पहले_सॉर्ट किए गए और बाद_सॉर्ट किए गए अंकों के सही और अंतिम तत्व हैं <अंक[0], तो
    • सही लौटें
  • अन्यथा,
    • झूठी वापसी

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

उदाहरण

def solve(nums):
   min_element = 999999
   min_index = -1
   min_element = min(nums)
   min_index = nums.index(min_element) before_sorted = True
   for i in range(1, min_index):
      if nums[i] < nums[i - 1]:
         before_sorted = False
         break
   after_sorted = True
   for i in range(min_index + 1, len(nums)):
      if nums[i] < nums[i - 1]:
         after_sorted = False
         break
   if before_sorted and after_sorted and nums[-1] < nums[0]:
      return True
   else:
      return False
nums = [4,5,6,8,1,3]
print(solve(nums))

इनपुट

[4,5,6,8,1,3]

आउटपुट

True

  1. पायथन में घुमाए गए क्रमबद्ध सरणी में खोजें

    मान लें कि हमारे पास आरोही क्रम में क्रमबद्ध एक सरणी है, और इसे पहले से अज्ञात किसी धुरी पर घुमाया गया है। उदाहरण के लिए, [0,1,2,4,5,6,7] [4,5,6,7,0,1,2] बन सकता है। हमने खोज को लक्ष्य मान दिया है। यदि हम इसे सरणी में प्राप्त कर सकते हैं, तो इसकी अनुक्रमणिका लौटाएं, अन्यथा -1 लौटाएं। हम मान सकते हैं

  1. पायथन में सॉर्ट किए गए ऐरे को मर्ज करें

    मान लीजिए कि हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है। उदाहरण के लिए, मान लीजिए A =[1,2,4,7] और B =[1,3,4,5,6,8], तो मर्ज की गई सूची C होगी [1,1,2,3,4, 4,5,6,7,8] इसे हल करने के लिए, इन चरणों का पालन करें

  1. a.sort, क्रमबद्ध (a), np_argsort(a) और np.lexsort(b, a) पायथन में

    डेटा तत्वों को एक विशिष्ट क्रम में क्रमित करना अक्सर आवश्यक ऑपरेशन है। किसी ऐरे में एलीमेंट को सॉर्ट करने के लिए, पायथन सॉर्टेड () और ऐरे.सॉर्ट () नामक फंक्शन का उपयोग करता है। क्रमबद्ध (सरणी) यह फ़ंक्शन मूल सरणी को संशोधित किए बिना एक क्रमबद्ध सरणी देता है। a = [9,5,3,1,12,6] b = sorted([9,5,3,1,1