কম্পিউটার

পাইথনে বৃহত্তর সাজানো তালিকা তৈরি করতে দুটি সাজানো তালিকা একত্রিত করার প্রোগ্রাম


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

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

  • x:=একটি নতুন তালিকা
  • i:=0, j:=0
  • যখন i <(lst0) এর আকার এবং j <(lst1) এর আকার, কর
    • যদি lst0[i]> lst1[j] হয়, তাহলে
      • x-এর শেষে lst1[j] ঢোকান
      • j:=j+1
    • অন্যথায় যখন lst0[i]
    • x-এর শেষে lst0[i] ঢোকান
    • i:=i+1
  • অন্যথায়,
    • x-এর শেষে lst0[i] ঢোকান
    • x-এর শেষে lst1[j] ঢোকান
    • i:=i+1, j:=j+1
  • যখন i
  • x-এর শেষে lst0[i] ঢোকান
  • i:=i+1
  • যখন j
  • x-এর শেষে lst1[j] ঢোকান
  • j:=j+1
  • ফেরত x
  • আসুন আরও ভালভাবে বোঝার জন্য বাস্তবায়ন দেখি

    উদাহরণ

    class Solution:
       def solve(self, lst0, lst1):
          x=[]
          i=0
          j=0
          while(i<len(lst0) and j<len(lst1)):
             if(lst0[i]>lst1[j]):
                x.append(lst1[j])
                j=j+1
             elif(lst0[i]<lst1[j]):
                x.append(lst0[i])
                i=i+1
             else:
                x.append(lst0[i])
                x.append(lst1[j])
                i=i+1
                j=j+1
          while(i<len(lst0)):
             x.append(lst0[i])
             i=i+1
          while(j<len(lst1)):
             x.append(lst1[j])
             j=j+1
          return x
    ob = Solution()
    print(ob.solve([1,2,4,7], [1,3,4,5,6,8]))

    ইনপুট

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

    আউটপুট

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

    1. সাজানো তালিকায় একটি উপাদান সন্নিবেশ করার জন্য পাইথন প্রোগ্রাম

    2. পাইথন প্রোগ্রাম দুটি তালিকার ছেদ খুঁজে বের করতে?

    3. 3D তালিকা তৈরি করতে পাইথন প্রোগ্রাম।

    4. পাইথন প্রোগ্রাম অভিধানে একত্রিত করতে।