ソートアルゴリズムを簡単に学ぶ: よく使われるソートアルゴリズムを視覚的に体験

ソートアルゴリズムを簡単に学ぶ: よく使われるソートアルゴリズムを視覚的に体験

1. クイックソート

導入:

クイックソートは、Tony Hall によって開発されたソートアルゴリズムです。平均すると、n 個の項目をソートするには O(n log n) 回の比較が必要です。最悪の場合、O(n2) 回の比較が必要になりますが、これは一般的ではありません。実際、クイックソートは、その内部ループがほとんどのアーキテクチャで効率的に実装でき、ほとんどの実世界のデータでは設計の選択によって必要な時間を 2 乗項で短縮できる可能性が決まる可能性があるため、他の O(n log n) アルゴリズムよりも大幅に高速になることがよくあります。

ステップ:

◆ シーケンスから要素を選択することを「ピボット」と呼びます。

◆ シーケンスを並べ替えて、基本値より小さいすべての要素をベースの前に置き、基本値より大きいすべての要素をベースの後ろに配置します (同じ数字がどちらの側にある場合もあります)。このパーティションを削除すると、ベンチマークはランキングの中間になります。これをパーティション操作と呼びます。

◆ 基本値より小さい要素の部分列と基本値より大きい要素の部分列を再帰的にソートします。

ソート効果:

2. マージソート

導入:

マージソート(Merge sort、台湾ではmerge sortと訳される)は、マージ操作に基づく効果的なソートアルゴリズムです。このアルゴリズムは分割統治の典型的な応用である。

ステップ:

◆ 2 つのソートされたシーケンスの合計サイズを持つスペースを申請します。このスペースは、マージされたシーケンスを格納するために使用されます。

◆ 2つのポインタを設定し、その初期位置は2つのソートされたシーケンスの開始位置となる

◆ 2つのポインタが指す要素を比較し、比較的小さい要素を選択してマージスペースに配置し、ポインタを次の位置に移動します。

◆ ポインタがシーケンスの最後に到達するまでステップ3を繰り返す

◆ 他のシーケンスの残りの要素をすべて、結合されたシーケンスの末尾に直接コピーします。

ソート効果:

3. ヒープソート

導入:

ヒープソートとは、ヒープ データ構造を使用して設計されたソート アルゴリズムを指します。ヒープは、完全なバイナリ ツリーを近似し、ヒープ プロパティを満たす構造です。つまり、子ノードのキー値またはインデックスは常に親ノードよりも小さい (または大きい) です。

ステップ:

(かなり複雑なので、オンラインで調べてください)

ソート効果:

4. 選択ソート

導入:

選択ソートはシンプルで直感的なソートアルゴリズムです。仕組みは以下のとおりです。まず、ソートされていないシーケンス内の最小の要素を見つけて、ソートされたシーケンスの先頭に格納します。次に、残りのソートされていない要素から最小の要素を探し続け、ソートされたシーケンスの最後に配置します。すべての要素がソートされるまでこれを繰り返します。

ソート効果:

5. バブルソート

導入:

バブルソート(Bubble Sort、台湾語ではバブルソートまたはバブルソートと訳される)は、単純なソートアルゴリズムです。ソートする配列を繰り返し処理し、一度に 2 つの要素を比較して、順序が間違っている場合はそれらを交換します。シーケンスを訪問する作業は、交換が不要になるまで、つまりシーケンスがソートされるまで繰り返されます。このアルゴリズムの名前は、小さな要素が交換を通じてゆっくりとシーケンスの先頭に「浮かんで」いくという事実に由来しています。

ステップ:

◆ 隣接する要素を比較します。最初の値が 2 番目の値より大きい場合は、それらを交換します。

◆ 隣接する要素の各ペアに対して、先頭の最初のペアから最後のペアまで同じことを行います。この時点で、最大の要素が最大の数値になるはずです。

◆ 最後の要素を除くすべての要素に対して上記の手順を繰り返します。

◆ 比較する必要のある数字のペアがなくなるまで、要素の数を減らしながら上記の手順を繰り返します。

ソート効果:

6. 挿入ソート

導入:

挿入ソートのアルゴリズムの説明は、シンプルで直感的なソート アルゴリズムです。これは、順序付けられたシーケンスを構築することによって機能します。ソートされていないデータの場合は、ソートされたシーケンス内で後ろから前へスキャンし、対応する位置を見つけて挿入します。挿入ソートは通常、インプレースソート(つまり、O(1)の追加スペースのみを必要とするソート)によって実装されます。したがって、後ろから前へスキャンするプロセスでは、挿入する最初の要素のためのスペースを確保するために、ソートされた要素を繰り返し後方にシフトする必要があります。

ステップ:

◆ 最初の要素から始めて、要素はソートされているとみなすことができます

◆ 次の要素を取り出し、ソートされた要素の順序で後ろから前へスキャンする

◆ 要素(すでにソートされている)が新しい要素よりも大きい場合は、要素を次の位置に移動する

◆ ソートされた要素が新しい要素より小さいか等しい位置が見つかるまで、手順3を繰り返します。

◆ この位置に新しい要素を挿入します

◆ 手順2を繰り返す

ソート効果:

(なし)

7. シェルソート

導入:

ヒル ソートは、降順増分ソート アルゴリズムとも呼ばれ、挿入ソートの高速で安定した改良版です。

ヒルソートは、挿入ソートの次の 2 つの特性に基づいた改良された方法を提案します。

◆ 挿入ソートは、ほぼすでにソートされているデータに対して操作する場合に効率的であり、つまり線形ソートの効率を実現できます。

◆ ただし、挿入ソートは一度に 1 ビットずつしかデータを移動できないため、一般的に効率が悪いです。

ソート効果:

オリジナルリンク: http://yingyingol.iteye.com/blog/1334891

【編集者のおすすめ】

  1. Java GUIで書かれた描画ボードプログラム
  2. Javaの動的バインディングメカニズム
  3. Java でのチェックボックス付きツリーの実装と応用
  4. Sinatra に似た 3 つの Java フレームワークの紹介
  5. 完全なJava実行ファイルを作成する

<<:  JVM チューニングの概要: 基本的なガベージ コレクション アルゴリズム

>>:  MOEA Framework 1.9は、MOEAアルゴリズムを開発するためのJavaクラスライブラリをリリースしました。

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

顔認識は普及しつつあるのに、なぜ禁止されているのでしょうか?

顔認識は誰もが知っている技術です。iPhoneのFace IDからAlipayの顔認証決済まで、かつ...

Baiduの李振宇氏:Apollo 3.0のリリースはApolloのオープン性の新たな出発点です

自動車業界から大きな注目を集めるアポロオープンプラットフォームは、新たな量産時代を迎えました。 7月...

テックネオテクノロジーサロ​​ン - 第14号 - アルゴリズムに基づくIT運用・保守の実践と探究

【51CTO.comオリジナル記事】 [51CTO オリジナル記事、パートナーサイトに転載する場合は...

4 つの主要ビジネス分野における業界に関するインテルの詳細な洞察、アプリケーション事例、革新的な製品とソリューションの解釈 | Intel Vision

ポストパンデミックの時代において、在宅勤務によって従業員の生産性を最大限に引き出すにはどうすればいい...

インテリジェント PDU について...

専門的な配電設備として、PDU は基本型とインテリジェント型の 2 つのタイプに分けられます。インテ...

スタンフォード大学のマニング教授はAAAS特別号に記事を掲載した。「ビッグモデルは画期的な進歩となり、汎用人工知能に期待が寄せられている」

NLP は人工知能を刺激的な新時代へと導きます。現在、人工知能分野で最もホットな話題は、大規模モデ...

...

医療におけるロボティック プロセス オートメーションのユースケース

[[419917]]多くの大規模医療機関は現在、デジタル化を実現するためにロボティック・プロセス・オ...

機械学習の教科書に出てくる7つの典型的な問題

[[201516]]機械学習について学びたい、または機械学習に専念することを決心した場合、すぐにさま...

人工知能はビジネスに大きな影響を与えます。AIは中小企業に5つの大きなメリットをもたらします。

市場のトレンドはどのくらいの速さで発展していますか? 特に人工知能に関しては。企業は驚くべき速度で ...

大企業が AI 関連の合併や買収に夢中になっていることについてどう思いますか?

[51CTO.com からのオリジナル記事] ご存知のとおり、AI は医療から旅行まで、あらゆる分...

パンデミックにより、AI のステータスは「欲しいもの」から「必須のもの」に変化したのでしょうか?

パンデミック以前は、AIの導入は世間の関心を集めていたものの、人々はまだAIの長所と短所、ビジネスへ...

これを携帯電話の代わりにしたいですか?ネットで人気急上昇のAIハードウェアが衝撃を受ける:Google Glass + ポケベル

たったこれだけで、携帯電話を交換したいですか?最近話題になっている新しいAIデバイス「AI Pin」...

「幻想」を消し去れ! Google の新しい ASPIRE メソッドにより、LLM は自己採点が可能になり、その効果はボリューム モデルよりも 10 倍優れています。

大規模モデルの「幻覚」問題は解決されつつあるのでしょうか?ウィスコンシン大学マディソン校とグーグルの...

MySQL などの従来のリレーショナル データベースは弱すぎます。 GPU データベースは将来のトレンドです!

データベース市場でMySQLの地位を揺るがすようなデータベースが登場したのは久しぶりのようです。主要...