Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つのソートされたリストをマージして、より大きなソートされたリストを形成するプログラム


ソートされたリストAとBが2つあるとします。それらをマージして、ソートされたリストCを1つだけ作成する必要があります。リストのサイズは異なる場合があります。

たとえば、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)のサイズの間、do
    • 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
  • return 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. ソートされたリストに要素を挿入するPythonプログラム

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、ソートされた順序を変更せずにリストに要素を挿入する必要があります 以下で説明するように、2つのアプローチがあります- アプローチ1:強引な方法 例 def insert(list_, n):    # search    for i in range(len(list_)):       if list_[i] > n:          index = i

    2. 辞書にマージするPythonプログラム。

      このプログラムでは、2つの辞書が提供されます。私たちの仕事は、この2つのリストをマージすることです。ここでは、update()メソッドを使用します。 Updateメソッドは、2つのリストをマージするために使用できます。ここで、2番目のリストが最初のリストにマージされます。 noneを返します。これは、新しいリストが作成されないことを意味します。 例 Input:: A= [AAA,10] B= [BBB,20] Output:: C= {BBB: 20, AAA: 10} アルゴリズム Step 1: First create two User input dictionary. Ste