javascript埋め込みコード

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Java挿入ソートは、リスト内の各項目を評価します。アイテムが前のアイテムよりも小さい場合、ソートはアイテムを交換します。それ以外の場合、アイテムは同じ場所にとどまり、2つのアイテムがリストで比較されます。

コンピューターはアイテムのリストを並べ替えるのが得意です。ループを使用すると、リスト内のすべてのアイテムを検索し、特定の方法で表示されるまで順序を変更できます。

プログラミングでは、リストを並べ替える標準的な方法があります。これらをソートアルゴリズムと呼びます。並べ替えアルゴリズムは、リスト内のすべての項目を読み取り、特定のステートメントのセットを使用して並べ替えます。遭遇する最新のソートアルゴリズムの1つは、ある種の挿入です。

このガイドでは、Java挿入ソートアルゴリズムを実装する方法について説明します。途中で例を見ていき、どのタイプが機能するかについての論理を学ぶことができます。

始めましょう!

Java挿入出力とは何ですか?

Java挿入タイプは、カードのデッキで手札のカードを並べ替えるのと同じように機能します。挿入ソートは、リスト内の各アイテムをチェックし、それらを左側のアイテムと交換します。アイテムが交換されるかどうかは、アイテムが前のアイテムよりも大きいか小さいかによって異なります。

ちょっとの間、ホイスト、ラミーなどのカードゲームをプレイしていると想像してみてください。カードを注文するとき、あなたは何をしますか?

左から始めて、2枚目のカードがソートされているかどうかを確認します。このカードが最後のカードよりも大きい場合は、同じ位置にとどまる必要があります。それ以外の場合は、リスト内の1つの位置を移動する必要があります。

手元にあるすべてのカードを使い切って、すべてのカードが正しい順序で表示されるまでこれを行います。

並べ替え入力を使用するタイミングは?

複数ありますソートする必要のある残りの要素がわずかしかない場合に使用される挿入の種類

< / a>

一種のマージとして、データのリストを並べ替えるために使用できるより効率的なアルゴリズムがあります。そのため、デフォルトで挿入ソートを常に使用する必要はありません。ただし、統合の種類は、リストを並べ替える位置のバブルや選択の種類よりも効果的です。

挿入は、単純な並べ替えアルゴリズムの一種であり、初心者が学ぶのに役立ちます。

並べ替えの挿入手順

カードのデッキを表示することは、世界で最も直感的ではありません。まず、プログラミングの例を見てください。次のリストについて考えてみます。

8 6 3 9

このリストでは、最初のアイテムが並べ替えられていると想定しています。

次のステップは、リストの2番目のアイテムを最初のアイテムと比較することです。最初の要素が2番目の要素より大きい場合、この要素は最初の要素の前に配置されます。

この場合、6は8より大きいことを意味します。これは、6がリスト内の位置を返すことを意味します。 8は位置を進めます:

6 8 3 9

次に、3番目の要素をその左側の要素と比較する必要があります。3は8より大きいですか?いいえ、8は位置を右に移動します:

6 3 8 9

3は6より大きいですか?いいえ、6番を移動します:

3 6 < / td> 8 9

次に、リストの4番目のポイント(最後の要素)がリストの他のポイントよりも優れているかどうかを比較する必要があります。この場合、9は、その前のすべての要素(8、6、および3)よりも大きくなります。

リストの並べ替えに使用したアルゴリズムは次のとおりです。

  • 最初の要素が並べ替えられます。
  • 2番目の要素を左側の要素と比較します。
  • この要素が左側の値より大きい場合、要素は同じ場所に残ります。それ以外の場合は、値を左に移動します。
  • すべてのアイテムが順番に表示されるまで繰り返します。

これで並べ替えられた配列ができました。挿入の種類は、一度に1つのアイテムで並べ替えられます。この並べ替えアルゴリズムをJavaで実装する方法を見てみましょう

実行方法Javaでの挿入ソート

2つの値のうち高い方の値は、ソート機能が実行されるたびに右に1つの位置に挿入されます。

理論的には問題ありません。 、しかし、Javaでどのように実装されますか?それは良い質問です。学生の成績のリストに挿入してソートするクラスを書いてみましょう。

配列ライブラリを準備します

始めましょう配列ライブラリをJavaプログラムにインポートします。並べ替えたら、このライブラリを使用してリストをコンソールに出力します。

decla並べ替えメソッドについて

まず、リストを反復処理し、データを昇順>で並べ替えるメソッドを宣言します。

まず、入力配列内の要素の数を調べます。これにより、リスト内の各アイテムを通過するループを作成できます。リストから出るまでループするループを初期化します。

ループでは、キーと最後の変数の2つの変数を宣言しました。

Java 変数「key」は、現在注文している要素を追跡します。 「last」変数は、アイテムの左側に並べ替える必要のあるアイテムの数を追跡します。

プログラムは、小さい要素が見つかるまで、左側の各要素の「key」の値を比較します。 。これは、 Java"while"ループで発生します。

メイン関数を定義します

これを実行するときコード、何も起こりません。確かに、私たちはまだ私たちの主な機能を定義していません。 int(数値の配列)のネットワークを定義するmain関数を定義します。このメイン関数は、これらの数字をソートするために宣言した insertSort()関数を使用します。エントリを宣言した後、このコードを貼り付けますSort Javaメソッド

mainメソッドで、並べ替える数値のリストを宣言しました。 sortNumbers というInsertionSort()メソッドをインスタンス化しました。このメソッドを使用して、番号のリストを昇順で並べ替えます。このメソッドは、「数字」ベクトルの値を変更します。値を格納するための個別の配列を宣言しませんでした。

次に、数値の配列を文字列に変換するArrays.toString()メソッド。<

h2>試験の複雑さ

挿入の並べ替えの平均的なケースの複雑さはO( n ^ 2)。これは、アイテムが並べ替えられていない場合に発生します。

配列が並べ替えられると、ベストケースの複雑さが発生します。これにより、時間の複雑さがO(n)になります。実際、ある種の内部ループはこの場合、挿入はまったく実行されません。

最悪の場合、挿入はO、Äã‚Äãsort(n ^ 2)で行われます。これは、配列が昇順または降順の場合に発生します。そして、逆の順序でソートしたい(つまり、昇順から降順)。各要素と他のすべての要素の構成ents。

結論

挿入の種類は、データを並べ替える効率的な方法です。 ortsは、リストの2番目から始まる値を比較します。この値が左側の値より大きい場合、リストは変更されません。それ以外の場合は、左側の要素が少なくなるまで値が移動します。

これで、Javaで独自の挿入ソートアルゴリズムを作成する準備が整いました。Javaの学習リソースをさらに探している場合は、 Java学習ガイド。