以下では、主にデータ構造の教科書で紹介されている「10 種類のソートアルゴリズム」について説明します。試験が近づいてきたので、ソートアルゴリズムを復習します。言葉よりも写真のほうが雄弁です。理解できないなら、私を殺してください。 ヒープ ソート、クイック ソート、シェル ソート、直接選択ソートは安定したソート アルゴリズムではありませんが、基数ソート、バブル ソート、直接挿入ソート、バイナリ挿入ソート、リンク リスト挿入ソート、マージ ソートは安定したソート アルゴリズムです。 直接挿入ソート T(n) = O(n^2) 直接挿入ソートの基本的な考え方は、すべてのレコードが挿入されるまで、ソートするレコードをそのキーワードのサイズに応じて、以前にソートされたサブシーケンスの適切な位置に毎回挿入することです。 配列をa[0…n-1]とします。
バイナリ挿入ソート T(n) = O(n^2) バイナリ挿入ソートは、直接挿入ソートの単純な改良版です。バイナリ挿入ソートでは、i 番目の要素を挿入する必要がある場合、各要素を 1 つずつ比較するのではなく、次の処理を行います。
リンクリスト挿入ソート T(n) = O(n^2) リンク リスト挿入ソートの基本的な考え方は、最初の n-1 個のノードが順番に並んでいると仮定し、最初のノードを取り、適切な位置に到達するまでリンク リストに沿って検索および比較し、「このノード」と「挿入するノード」のポインターを変更することです。
シェルソートT(n) = O(n^1.5) シェルソートの本質はグループ挿入ソートであり、縮小増分ソートとも呼ばれます。この方法の基本的な考え方は次のとおりです。
バブルソートT(n) = O(n^2) バブルソートの基本的な考え方は、隣接する要素をペアで比較し、順序が逆の場合はそれらを交換することです。このようにして、最小または最大の要素が各移動で一番上に「浮かび」、最終的に完全な順序が達成されます。 クイックソート範囲T(n) = O(n*lg n) ~ O(n^2) | 平均 T(n) = O(n*lg n) クイックソートは分割統治(再帰)方式を使用します。その基本的な考え方は次のとおりです。 まず、シーケンスから基数として数字を取ります。 分割プロセスでは、この数値より大きいすべての数値は右側に配置され、この数値以下のすべての数値は左側に配置されます。 各間隔に数字が 1 つだけになるまで、左と右の間隔に対して 2 番目の手順を繰り返します。 直接選択ソートT(n) = O(n^2) ストレート セレクト ソートもシンプルなソート方法です。基本的な考え方は次のとおりです。
ヒープ選択ソートT(n) = O(n*log2n) ヒープソートとは、ヒープツリー(ヒープ)のデータ構造を使用して設計されたソートアルゴリズムを指します。選択ソートの一種です。杭は大根杭と小根杭に分けられます。次の図は小根杭です。 「図のように同じ手順で行ってください」 マージソートT(n) = O(n*log2n) マージソートは、分割統治の考え方を採用したマージ操作に基づく効果的なソートアルゴリズムです。双方向のマージを以下に示します。 基数ソート 基数ソートは「分散ソート」の一種であり、「バケットソート」に多少似ています。
|
<<: Hive でサポートされているファイル形式と圧縮アルゴリズム
>>: 2017 年の Quora における機械学習の 5 つの主要な応用シナリオ
1.1 ナレッジグラフの開発履歴ナレッジグラフは 1950 年代に始まり、大きく 3 つの開発段階に...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
Googleで最初に出てくるのは、スタンフォード大学の元学長ゲルハルト・カスパーの名前です。 199...
[[225280]] 2018年度Google PhDフェローシップ(北米、ヨーロッパ、中東)の候...
ロボットには、人間との感情的なつながりを築くように設計されたフレンドリーなロボットから、複雑なタスク...
[[389010]]消費者の行動が変化し、企業の業務ニーズが変化するにつれて、人工知能は徐々に企業...
製造業者は、AI を、適切に機能するために会社全体にわたるエンドツーエンドのシステムを必要とする、非...
機械学習が「人間レベル」の能力に到達するには、多くのトレーニング反復とラベル付きデータが必要です。こ...
エッジ コンピューティングは、ネットワークのエッジでコンピューティングを実行する新しいコンピューティ...
[[201444]]ニューラルネットワークのデバッグは、専門家にとっても困難な作業です。数百万のパラ...