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]
-
Pythonでのマージソートについて説明する
マージソートはソート手法です。これは、時間計算量が( n logn )の効率的な並べ替えアルゴリズムです。 )ここで、nはソートされる配列の長さです。 マージソートは、DivideandConquersパラダイムに従うアルゴリズムです。配列を2つの等しい半分に連続的に分割します。その後、それぞれが1つの要素を持つリストの並べ替えを開始し、並べ替えられたリストを継続的にマージして、完全な並べ替えリストを形成します。 したがって、ソートされた配列を取得します。 例 紫色のボックスと黒い矢印は、リストが2つに分割されていることを示しています。 緑色のボックスと赤い矢印は、並べ替え
-
PythonでGETメソッドを使用して情報を渡す
GETメソッドは、ページリクエストに追加されたエンコードされたユーザー情報を送信します。ページとエンコードされた情報は?で区切られます次のような文字- https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2 GETメソッドは、ブラウザからWebサーバーに情報を渡すためのデフォルトのメソッドであり、ブラウザのLocation:boxに表示される長い文字列を生成します。サーバーに渡すパスワードやその他の機密情報がある場合は、GETメソッドを使用しないでください。 GETメソッドにはサイズ制限があります。リクエスト文字列で