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

heapqを使用してPythonで2つのソートされた配列をマージしますか?


このセクションでは、Pythonのheapqモジュールを使用して2つのソートされたリストをマージする方法を説明します。例として、list1 =[10、20、30、40]およびlist2 =[100、200、300、400、500]の場合、マージ後、list3 =[10、20、30、40、100、 200、300、400、500]

このタスクを実行するには、heapqモジュールを使用します。このモジュールには、標準ライブラリモジュールとしてPythonが付属しています。したがって、使用する前にインポートする必要があります。

import heapq

heapqモジュールにはいくつかのプロパティがあります。これらは以下のようなものです-

メソッドheapq.heapify(iterable)

反復可能なデータセットをヒープデータ構造に変換するために使用されます。

メソッドheapq.heappush(heap、element)

このメソッドは、要素をヒープに挿入するために使用されます。その後、ヒープ構造全体を再ヒープします。

メソッドheapq.heappop(heap)

このメソッドは、ヒープの先頭から要素を返したり削除したり、残りの要素に対してヒープ化を実行したりするために使用されます。

メソッドheapq.heappushpop(heap、element)

このメソッドは、1つのステートメントに要素を挿入してポップするために使用されます。

メソッドheapq.heapreplace(heap、element)

このメソッドは、1つのステートメントに要素を挿入してポップするために使用されます。ヒープのルートから要素を削除してから、要素をヒープに挿入します。

メソッドheapq.nlargest(n、iterable、key =None)

このメソッドは、ヒープから最大のn個の要素を返すために使用されます。

メソッドheapq.nsmallest(n、iterable、key =None)

このメソッドは、ヒープからn個の最小要素を返すために使用されます。

サンプルコード

import heapq
first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36]
second_list = [42, 13, 69, 54, 15]

first_list = sorted(first_list)
second_list = sorted(second_list)

print('First sorted list: ' + str(first_list))
print('Second sorted list: ' + str(second_list))

final_list = list(heapq.merge(first_list, second_list))
print('The final list: ' + str(final_list))

出力

First sorted list: [12, 15, 20, 21, 36, 45, 63, 74, 95]
Second sorted list: [13, 15, 42, 54, 69]
The final list: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]

  1. Pythonでのマージソートについて説明する

    マージソートはソート手法です。これは、時間計算量が( n logn )の効率的な並べ替えアルゴリズムです。 )ここで、nはソートされる配列の長さです。 マージソートは、DivideandConquersパラダイムに従うアルゴリズムです。配列を2つの等しい半分に連続的に分割します。その後、それぞれが1つの要素を持つリストの並べ替えを開始し、並べ替えられたリストを継続的にマージして、完全な並べ替えリストを形成します。 したがって、ソートされた配列を取得します。 例 紫色のボックスと黒い矢印は、リストが2つに分割されていることを示しています。 緑色のボックスと赤い矢印は、並べ替え

  2. PythonでGETメソッドを使用して情報を渡す

    GETメソッドは、ページリクエストに追加されたエンコードされたユーザー情報を送信します。ページとエンコードされた情報は?で区切られます次のような文字- https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2 GETメソッドは、ブラウザからWebサーバーに情報を渡すためのデフォルトのメソッドであり、ブラウザのLocation:boxに表示される長い文字列を生成します。サーバーに渡すパスワードやその他の機密情報がある場合は、GETメソッドを使用しないでください。 GETメソッドにはサイズ制限があります。リクエスト文字列で