ホームページ  >  記事  >  Java  >  バブルソートのJava実装の詳細な図による説明

バブルソートのJava実装の詳細な図による説明

WBOY
WBOY転載
2022-03-08 17:30:523019ブラウズ

この記事では、java に関する関連知識を提供します。主にバブル ソートの実装方法に関する関連問題を紹介します。バブル ソートとは、リストの先頭から末尾まで、隣接する 2 つの要素を比較することです。 , 隣接する要素の各ペアが順番に比較されます。見てみましょう。皆さんの参考になれば幸いです。

バブルソートのJava実装の詳細な図による説明

## 推奨学習: 「

java チュートリアル

バブル ソートの原理

  1. 2 つを比較します隣接する要素。最初の値が 2 番目の値より大きい場合は、それらの位置を入れ替えます (昇順で、降順でその逆)。

  2. 隣接する要素の各ペアをリストの最初から最後まで順番に比較します。このようにして、最大値を持つ要素が交換によってリストの最後に「バブリング」し、最初の「バブリング」ラウンドが完了します。

  3. 前の手順を繰り返し、リストの先頭から順に隣接する要素の比較を続けます。吹き出した要素は比較する必要はありません(最後まで比較できます。奥まで吹き出した要素は比較しても入れ替える必要はありません。比較しないことで削減効果が得られます)ステップ)。

  4. リストから開始して比較を続けると、比較の各ラウンドで 1 つの要素が正常に「バブル」します。各ラウンドで比較する必要がある要素の数は、「バブル」しない (比較する必要のない要素のペアがなくなる) 要素が 1 つだけ残るまで減少し、リストの並べ替えは完了します。

  5. #バブル ソート プロセス

次の 1 次元配列を例に挙げます:

int[] array = new int[]{55,33,22,66,11};

バブルの最初のラウンド

図①は「バブル」の第1ラウンドにおけるデータの開始順序を縦棒グラフで表したもので、「前の要素が次の要素より大きい場合は位置の順序が入れ替わり、それ以外の場合は入れ替える」という条件を満たしている限り、交換はありません。」
  1. array[0]=55 > array[1]=33、条件が満たされる場合、図②に示すように要素の位置の順序を交換します;
  2. array[1 ]=55 > array[2]=22、条件が満たされると、図③のように要素の位置の順序が入れ替わります;
  3. array[2]=55
  4. array[3]=66 > array[4]=11、条件が満たされない場合条件が満たされると、図④に示すように、要素の位置順序が交換されます。
  5. 「バブル」デモンストレーションの最初のラウンドを図に示します。
バブリングの 2 回目のラウンド


#図④は 2 回目のバブリングを示しています「バブル」内のデータの開始順序縦棒グラフ; バブルソートのJava実装の詳細な図による説明

array[0]33 > array [1]=22 の場合、図⑤のように要素の位置の順序が入れ替わります;
array[1]33
  • array[2]55 > array[3]=11、条件が満たされる場合、位置を交換します。図 6 に示すように、要素の順序を変更します。
  • #「バブル」デモンストレーションの 2 番目のラウンドは、図に示すとおりです。
  • #図⑥は、「バブル」の 3 ラウンド目のデータの開始順序縦棒グラフを示しています;
  • array[0]= 22

    array[1]=33 > array[2]=11、条件が満たされます、図 7 に示すように、要素の位置の順序を交換します。
    バブルソートのJava実装の詳細な図による説明

    「バブル」デモンストレーションの 3 回目のラウンドを図に示します。ラウンド バブル
      図 7 は、「バブル」の 4 ラウンド目のデータの開始シーケンスの縦棒グラフです;
    1. array[0]=22 > array[1] = 11. 条件が満たされる場合、図 8 に示すように、「22」と「11」のポジション順序を交換します。
    2. 「バブル」デモンストレーションの 4 ラウンド目は、次のとおりです。図:


    この時点で、配列のバブル ソートのプロセスは完了です。 バブルソートのJava実装の詳細な図による説明

    具体的なコードの実装
      BubbleSort クラス:
    1. public class BubbleSort {
          public static void sort(int array[]) {
              //i表示第几轮“冒泡”,j 表示“走访”到的元素索引。
              // 每一轮“冒泡”中,j 需要从列表开头“走访”到 array.length - 1 的位置。
              for (int i = 0; i  array[j + 1]) {
                          int temp = array[j];
                          array[j] = array[j + 1];
                          array[j + 1] = temp;
                      }
                  }
              }
          }}
    2. TestMain クラス
    3. import java.util.Arrays;public class TestMain {
          public static void main(String[] args) {
              int[] array = new int[]{55, 33, 22, 66, 11};
              //输出排序前的array数组
              System.out.print("排序前:");
              System.out.println(Arrays.toString(array));
              //调用BubbleSort类中的sort方法对array数组进行排序
              BubbleSort.sort(array);
              //输出冒泡排序后的array数组
              System.out.print("排序后:");
              System.out.println(Arrays.toString(array));
          }}
    4. 実行結果は次のとおりです:
    排序前:[55, 33, 22, 66, 11]排序后:[11, 22, 33, 55, 66]

    推奨される学習 : 「
    Java 学習チュートリアルバブルソートのJava実装の詳細な図による説明

    以上がバブルソートのJava実装の詳細な図による説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • 声明:
    この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。