Python ツリー選択ソート(Selection Sorting)機能
1. 導入
選択ソートには大きく分けて、単純選択ソート、木選択ソート、ヒープソートの3つのソートがあります。今日の記事では、ツリー選択ソートに焦点を当て、ツリー選択ソートはまた、トーナメントソートとして知られている、ツリー選択ソートは、キーワードのn個のレコードの最初の2つの比較を参照し、トーナメントソートのアイデアを使用し、その後に
n/2
というように、最小のレコードが選択されるまで続けます。
2. 問題の説明
ある配列が与えられたとき、木選択ソートを使ってどのように並べ替えるか、図と文章で以下に説明する。
例1:データテーブルA=(73、45、79、90、81、75、94、97)をソートする場合
出力する。45 73 75 79 81 90 94 97
3. 解決方法
データテーブルAは無秩序であり、今、それは最初の葉としてすべてのレコードを比較する必要がある木選択ソートの考え方によると、最小から最大への順序でソートする必要があり、次に左から右へ順番に、2つの比較によって、最小の1つを選択し、その後再び左から右へ順序でn / 2要素の比較、2つの比較によって、最小を選択して、この操作後に繰り返されています、意志 この操作を繰り返し後に、下から上に完全な二項木が形成されています。この段落を読んでもなかなか理解できないかもしれないので、以下に図で説明することにする。
1. バイナリーツリーを構築する。
図1は、データテーブルAで構成されるバイナリツリー、最初に直接下部にあるデータテーブルAのデータ、つまり、バイナリツリーの葉で、次に左から右へ2つずつ比較するために、例えば、73と45を比較した後に最小の45、79と90を比較した後に、最小の45を比較する45と79が選択されますが、このように完全バイナリツリーの組成まで繰り返されている。
2. 正しい順序で出力する方法。 図1によれば、ルートノードは45であり、これが最小であることがわかります。図2は、ルートノードが最小になるまで、図1と図2の比較を通じて、最小を見つけるために、最初の時間で見ることができる無限記号で置き換え45を見つけるために、次に2つずつ比較され45、2回目は73ですが、今では無限記号で置き換え73を見つけ、順序ですべてのデータまで、上記の操作を繰り返す。次の図は、次のとおりです。
4. 結論
ツリー選択ソートはまだ比較的理解されており、グラフとテキストの組み合わせはより簡単です。
Pythonの選択ソートにおけるツリー選択についての記事は以上となります。Pythonの木選択ソートについては、Scripting Houseの過去記事を検索していただくか、引き続き以下の関連記事をご覧ください。
関連
-
[解決済み】Numpyのエラー。特異な行列
-
[解決済み】 list["a", "b", "c"] を反復処理する際に "'type' object has no attribute '__getitem__'" というエラーが発生した。]
-
[解決済み】TypeError: super() takes at least 1 argument (0 given) error is specific to any python version?
-
[解決済み】super(type, obj): objはtypeのインスタンスまたはサブタイプでなければなりません。
-
PythonでRuntimeWarning: invalid value encountered in double_scalars問題を解決する方法
-
Python 人工知能 古い写真 修復 アルゴリズム 学習
-
[解決済み] Pythonです。DeprecationWarning: エレメント単位の == 比較に失敗しました; これは将来的にエラーになります。
-
[解決済み] plt.close()とplt.clf()の相違点
-
[解決済み] python socket.error 操作が許可されていない
-
[解決済み] Python TypeError: サポートされていないオペランドタイプ(s) for ^: 'float' および 'int'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
[解決済み】Python enumerate() tqdm ファイル読み込み時にプログレスバーが出る?
-
[解決済み】pycharmで「End of statement expected」【重複あり
-
[解決済み] Django の Model オブジェクトを、全てのフィールドをそのままに dict に変換します。
-
[解決済み] super() は、新しいスタイルのクラスに対して "TypeError: must be type, not classobj" を送出する。
-
[解決済み] ImportError: externという名前のモジュールがない
-
[解決済み] Pythonで、intをstringに変換するときに、フォーマットを指定する方法は?
-
[解決済み] PythonでGenerics/templates?
-
[解決済み] Pythonで空の文字列リテラルを初期化するためにstr()を使用することの長所と短所
-
ImportErrorの解決策です。mpl_toolkits.basemap'という名前のモジュールがありません。