1. アルゴリズムの評価基準 ソートアルゴリズムを説明する前に、まずアルゴリズムが一般的にどのような角度から評価されるかを理解しましょう。 アルゴリズムについて少しでも知っている人なら、このことは分かるでしょう。 「これら2つの基準は、時間の複雑さと空間の複雑さです」
そして一般的に、時間計算量は私たちが最も注意を払うものです。結局のところ、私たちの日常生活で気になるのは、ソフトウェアがどれだけ速く実行されるかです。それがとんでもなく遅いと、ユーザーエクスペリエンスは特に悪くなります。通常、私たちは、これがどれだけのメモリスペースを消費するかを尋ねません。 もう 1 つのポイントは、「時間計算量はアルゴリズムの核心である」ということです。結局のところ、少し大きい空間計算量は許容されますが、アルゴリズムの時間計算量を削減できない場合は、スペースを追加しても問題は解決しません。
このデータ構造は HashMap で、時間のためにスペースを犠牲にするデータ構造です。「Map は、キーが必要な要素を直接取得できます。」 HashMap が非常に強力であることがわかれば、大企業がデータ構造のソース コードを尋ねるときに HashMap のソース コードについて尋ねることが多い理由がわかります。その理由は、その設計が非常に悪いためです。 2. ソートアルゴリズムの分類 上記のアルゴリズムの評価基準を理解した後、これらのソートアルゴリズムがどのように分類されるかを確認する必要があります。分類方法は主に 2 つあります。 並べ替えの種類 ここに画像の説明を挿入 ここでの比較は、誰もが通常理解している比較と同じであり、つまり、ソートは主に比較によって行われます。
ここでの安定性については簡単に説明する必要があります。ここでの安定性とは、ソート後の同じ要素の相対的な位置がソート前と同じかどうかを指します。変化がない場合、アルゴリズムは安定していると呼ばれます。これは理解しにくいかもしれません。ここでは、次の図を使用して、印象を深めるのに役立ちます。 上記の概念を理解すると、ソートアルゴリズムを説明するときに提案されるいくつかの概念をよりよく理解できるようになります。 3. 古典的なソートアルゴリズムのトップ 10 - バブル ソート、選択ソート、挿入ソート 3.1-バブルソート アルゴリズムのアイデア: 泡といえば、まず頭に浮かぶのは、金魚が泡を吹いている下の写真でしょう。
図を見ると、上に行くほどバブルが大きくなっていることがわかります。これがバブルソートの核となる考え方です。各サイクルで、残りのソートされたシーケンスの最大値または最小値を見つけ、それをシーケンスの最後または先頭に置き換えます。理解するために、次の簡単な例を見てみましょう。 これがバブルソートの基本的な考え方です。バブルソートの特徴を簡単にまとめると次のようになります。
アルゴリズム図: ここに画像の説明を挿入 コード例:
ここに画像の説明を挿入 複雑性分析: バブルソートの基本的な考え方を理解した後、その時間計算量と空間計算量を分析する必要があります。
また、ソート処理全体を通じてスペースが追加されていることもわかります。このスペースは、定義した temp であり、主に要素の交換に役立ちます。したがって、バブル ソートのスペース計算量は O(1) です。 3.2- 選択ソート アルゴリズムの考え方: 選択ソートの鍵は選択です。選択の方法は、各サイクルで最小の要素を選択し、最小の要素をソートされたシーケンスの先頭の要素に置き換えることです。いつものように、次の図は、この選択プロセスをよりよく理解するのに役立ちます。 これは、基本的に理解できる選択ソートの基本概念です。上記のバブルソートと区別する必要があるのは、選択ソートは「比較が完了した後に2つの要素の位置を直接交換するのではなく、現在のシーケンスの最小の要素のみを記録する」ということです。最小の要素を見つけた後、最小の要素はキューの先頭の要素に置き換えられます。これを理解した後、選択ソートの特性について説明しましょう。
アルゴリズム図: ここに画像の説明を挿入 コード例:
複雑性分析: 選択ソートの基本的な考え方を理解した後、その時間計算量と空間計算量を分析する必要があります。
また、ソート処理全体を通じて 2 つのスペースが追加されることもわかります。このスペースは定義した temp と min なので、選択ソートのスペース複雑度も一定レベル、つまり O(1) になります。 3.3- 挿入ソート アルゴリズムのアイデア:挿入ソートのアルゴリズムのアイデアは、シーケンス全体を 2 つのセグメントに分割することです。1 つのセグメントはソートされたシーケンスであり、もう 1 つのセグメントはまだ必要がない状態です。たとえば、次の図に示すように: 挿入シーケンスは、2つのシーケンスに分割された後、ソートするシーケンスの先頭要素を選択し、順序付けられたシーケンスの末尾から始めて、その都度順序付けられたシーケンスに挿入します。要素よりも大きい場合は、要素を後ろにずらします。要素よりも小さい要素が現れると、現在の位置に挿入します。これが挿入ソートの名前の由来です。 長々と説明してもまだよく理解できないかもしれませんので、次の図でアルゴリズムの実行プロセスを詳しく説明しましょう。 挿入ソートアルゴリズムの基本的な考え方を理解した後、アルゴリズムの特徴を見てみましょう。
アルゴリズム図: ここに画像の説明を挿入 コード例:
ここに画像の説明を挿入 複雑性分析: 挿入ソートの基本的な考え方を理解した後、その時間計算量と空間計算量を分析する必要があります。
また、ソート処理全体を通じて 2 つのスペースが追加されることもわかります。このスペースは定義した temp と j なので、選択ソートのスペース計算量も一定レベル、つまり O(1) になります。 この記事はWeChat公式アカウント「萌萌哒铤铤」から転載したもので、以下のQRコードからフォローできます。この記事の転載については、Mengmengda Rangrangの公式アカウントまでご連絡ください。 |
<<: 「自然言語処理」とは何ですか? 具体的に何を「処理」するのですか?
>>: 2021年に注目すべき5つのAIと機械学習のトレンド
これまで多くの技術進歩の基盤となってきたデータセンターは、現在、インフラストラクチャ プロバイダーだ...
プラットフォーム経済の急速な発展に伴い、オンラインショッピング、交通、旅行宿泊、食品配達、オンライン...
1990年代初頭、中国の著名な学者である周海中氏は、人工知能技術がさまざまな分野で広く使用され、予想...
タンパク質は人体のすべての細胞と組織の重要な構成要素です。体のすべての重要な成分にはタンパク質が必要...
私が人工知能の分野で働き始めた頃は、まだ広大な海でした。モデルの展開方法さえ知っていれば、モデルの調...
現在進行中のデータ センターの再設計の主な側面は、AI の大規模で複雑なワークロードと、グラフィック...
ニューヨーク市警察は、その「ユートピア的」技術に対する激しい批判を受け、米国企業ボストン・ダイナミク...
海外メディアの報道によると、市場調査会社ガートナーは最近、投資家が人工知能やデータ分析技術をますます...
[[263771]] 5Gの進歩に伴い、コスト面でも速度面でも、中国の5Gなしでは5Gを推進するの...
Markets and Marketsの人工知能サイバーセキュリティ予測レポートによると、AIサイバ...
AIワークロードをエッジで実行することで、経済性の向上、意思決定の迅速化、自動化が可能になります。誇...
その中で、ヘルスケア業界は強力なスポンサーであり、新しいテクノロジーを積極的に導入してきました。人工...
ビジュアル AI 分野の開発者にとって、適切なアルゴリズムを選択することはプロジェクトの戦いの半分を...