কম্পিউটার

পাইথনে দুটি সাজানো তালিকা মার্জ করুন


ধরুন আমাদের দুটি সাজানো তালিকা 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]

আমরা পুনরাবৃত্তি ব্যবহার করে এটি সমাধান করব। সুতরাং ফাংশনটি নিচের মত কাজ করবে −

  • ধরুন ফাংশন মার্জ() এর A এবং B তালিকা
  • যদি A খালি হয়, তাহলে B ফেরত দিন, যদি B খালি থাকে, তাহলে A ফেরত দিন
  • যদি A-তে মান <=B-তে মান, তারপর A.next =মার্জ(A.next, B) এবং A ফেরত দেয়
  • অন্যথায়, তারপর B.next =মার্জ(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. পাইথন - দুটি পান্ডা ডেটাফ্রেম মার্জ করুন

  2. পাইথন ব্যবহার করে লিঙ্কযুক্ত তালিকা হিসাবে দেওয়া দুটি বহুপদ যোগ করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম দুটি তালিকা একত্রিত করতে এবং এটি সাজানোর জন্য

  4. পাইথনে মার্জ সর্ট ব্যাখ্যা কর