Javaソートアルゴリズムの概要(I):挿入ソート

Javaソートアルゴリズムの概要(I):挿入ソート

挿入ソートの基本的な操作は、ソートされた順序付けられたデータにデータを挿入し、それによって番号が 1 つ増加した新しい順序付けられたデータを取得することです。比較と交換の時間計算量は O(n^2) です。アルゴリズムは適応型です。データが基本的に順序付けられている場合、時間計算量は O(n) です。アルゴリズムは安定しており、オーバーヘッドが低くなっています。このアルゴリズムは、データが基本的に順序付けられている場合や、データの量が少ない場合に適しています。

挿入アルゴリズムは、ソートする配列を 2 つの部分に分割します。最初の部分には配列の最初の要素を除くすべての要素が含まれ、2 番目の部分にはこの 1 つの要素のみが含まれます。 *** 部分がソートされたら、ソートされた *** 部分の位置に *** 要素を挿入します。

アルゴリズムの説明

一般的に、挿入ソートは配列上でインプレースで実装されます。具体的なアルゴリズムは次のように説明されます。

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

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

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

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

5. 新しい要素を次の位置に挿入する

6. 手順2を繰り返します

比較演算のコストが交換演算のコストよりも大きい場合は、バイナリ検索を使用して比較演算の数を減らすことができます。このアルゴリズムは、バイナリ検索ソートと呼ばれる挿入ソートのバリエーションと考えることができます。

コードの実装

  1. 公共  void insertionSort() { // 挿入ソート 
  2. intアウト、イン;
  3. int count1 = 0 , count2 = 0 ; // コピー数、比較回数 
  4. (out = 1 ; out < nElems; out++)の場合{
  5. 長いtemp = a[out];
  6. イン = アウト;
  7. ブール値flag=in> 0 &&a[in- 1 ]>=temp;
  8. while (フラグ){
  9. (a[in- 1 ]>=temp)の場合{
  10. 0以上の場合
  11. a[in]=a[in- 1 ];
  12. カウント1++;
  13. - で;
  14. }
  15. }
  16. カウント2++;
  17. フラグ=in> 0 &&a[in- 1 ]>=temp;
  18. }
  19. a[in] = 温度;
  20. }
  21. System.out.println( "コピー数: " + count1 + "比較数: " + count2);
  22. }

データがすでに特定の順序になっている場合、挿入ソートの方が効率的です。しかし、データが不規則な場合は大量のデータを移動する必要があり、その効率はバブルソートや選択ソートと同じくらい悪くなります。

【編集者のおすすめ】

  1. 18.1.4 挿入ソート
  2. C# 直接挿入ソートの紹介
  3. C++ ソートに関する 4 つの古典的な講義: 挿入ソート

<<:  Java ソートアルゴリズムの概要 (II): 選択ソート

>>:  文字の組み合わせをソートするJavaアルゴリズム

ブログ    
ブログ    

推薦する

...

ドラッグアンドドロップ機械学習の愛と憎しみ

ドラッグアンドドロップ機械学習は、私が長い間考えてきたものです。 1. 過去世と現在世ドラッグ アン...

Llama 2を破り、GPT-3.5と競合するStability AIの新モデルがオープンソースの大規模モデルのリストでトップに

「たった30分の昼休みを取っただけで、私たちの分野はまた変わってしまったのか?」最新のオープンソース...

AI のブラックボックスを開く: 「説明可能な」人工知能 (XAI) への認知ガイド!

今日、企業組織は意思決定に人工知能や機械学習モデルをますます頼りにしており、こうした意思決定は私たち...

掃除ロボットはほこりを吸い取るだけでなく、プライバシーも「吸い取る」ことができます

家庭でますます一般的になりつつある掃除ロボットは、ほこりを吸い取るだけでなく、個人のプライバシーも「...

AIによる朗読がオーディオブック市場に影響、声優の仕事が脅かされる

6月19日のニュース:テクノロジーの進歩に伴い、人工知能(AI)が徐々に出版業界に参入し、特にオーデ...

...

人工知能の長所と短所をどのように見ていますか?

人工知能は、人間の生活に強固な物質的基盤を築くだけでなく、より多くの人々を単純で退屈な反復作業から解...

市場を席巻するアメリカの5大テクノロジー企業はAI時代にさらに勢力を拡大するのでしょうか?

アメリカのデジタルテクノロジー大手は、流行病の打撃を受けた後、軌道に戻った。数日前、Alphabet...

AI(人工知能)について知っておくべきこと

どのような AI テクノロジーが人気があり、人間の生活に影響を与えるでしょうか? [[398271]...

LLaMAが使用するオープンソースデータセットは棚から削除されました。これには約20万冊の本が含まれており、OpenAIデータセットに匹敵します。

オープンソースのデータセットは著作権侵害のため棚から削除されました。例えば、LLaMA、GPT-J ...

ペンシルバニア大学は、ディープニューラルネットワークの対称構造を研究し、層ごとの剥離解析モデルを提案した。

[[435206]]近年、ディープニューラルネットワークは多くの科学技術上の問題において優れたパフ...

科学者らが磁場を使ってバイオニックロボットの動きを制御する新たな解決策を発表

科学者は長い間ロボット工学の分野に興味を持っており、最近のバイオニックソフトロボットはロボット工学の...

...

ビッグデータの機械理解の秘密:クラスタリングアルゴリズムの詳細な説明

この記事では、いくつかのクラスタリング アルゴリズムの基本的な概要を示し、シンプルでありながら詳細な...