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

पायथन में दो क्रमबद्ध सूचियों को मिलाएं

मान लीजिए कि हमारे पास दो क्रमबद्ध सूचियां ए और बी हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सूची सी बनाना है। सूचियों का आकार भिन्न हो सकता है।

उदाहरण के लिए, मान लीजिए A =[1,2,4,7] और B =[1,3,4,5,6,8], तो मर्ज की गई सूची C होगी [1,1,2,3,4, 4,5,6,7,8]

हम इसे रिकर्सन का उपयोग करके हल करेंगे। तो फंक्शन नीचे की तरह काम करेगा -

  • मान लीजिए फंक्शन मर्ज की सूची A और B ()
  • यदि A खाली है, तो B को वापस करें, यदि B खाली है, तो A को वापस करें
  • यदि A में मान <=B में मान है, तो A.next =मर्ज (A.next, B) और वापसी A
  • अन्यथा, फिर B.next =merge(A, B.next) और रिटर्न B

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

उदाहरण (पायथन)

class ListNode:
   def __init__(self, data, next = None):
      self.val = data
      self.next = next
   def make_list(elements):
      head = ListNode(elements[0])
      for element in elements[1:]:
         ptr = head
         while ptr.next:
            ptr = ptr.next
         ptr.next = ListNode(element)
      return head
def print_list(head):
   ptr = head
   print('[', end = "")
   while ptr:
      print(ptr.val, end = ", ")
      ptr = ptr.next
   print(']')
class Solution:
   def mergeTwoLists(self, l1, l2):
      """
      :type l1: ListNode
      :type l2: ListNode
      :rtype: ListNode
      """
      if not l1:
         return l2
      if not l2:
         return l1
      if(l1.val<=l2.val):
         l1.next = self.mergeTwoLists(l1.next,l2)
         return l1
      else:
         l2.next = self.mergeTwoLists(l1,l2.next)
         return l2
head1 = make_list([1,2,4,7])
head2 = make_list([1,3,4,5,6,8])
ob1 = Solution()
head3 = ob1.mergeTwoLists(head1,head2)
print_list(head3)

इनपुट

head1 = make_list([1,2,4,7])
head2 = make_list([1,3,4,5,6,8])

आउटपुट

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

  1. पायथन का उपयोग करके लिंक्ड सूचियों के रूप में दिए गए दो बहुपदों को जोड़ने का कार्यक्रम

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

  1. दो सूचियों को मर्ज करने और इसे क्रमबद्ध करने के लिए पायथन कार्यक्रम

    जब दो सूचियों को मर्ज करने और उन्हें क्रमबद्ध करने की आवश्यकता होती है, तो एक विधि परिभाषित की जा सकती है जो सॉर्ट विधि का उपयोग करके सूची को सॉर्ट करती है। नीचे उसी का प्रदर्शन है - उदाहरण def merge_list(list_1, list_2):    merged_list = list_1 + list_2    merged_list.sort() &n

  1. पायथन में मर्ज सॉर्ट की व्याख्या करें

    मर्ज सॉर्ट एक सॉर्टिंग तकनीक है। यह एक कुशल छँटाई एल्गोरिथ्म है जिसकी समय जटिलता (n logn .) है ) जहां n क्रमबद्ध करने के लिए सरणी की लंबाई है। मर्ज सॉर्ट एक एल्गोरिथम है जो डिवाइड एंड कॉनक्वेर्स प्रतिमान का अनुसरण करता है। यह सरणी को लगातार दो बराबर हिस्सों में विभाजित करता है। बाद में यह प्रत्येक