この記事では、初心者が JAVA バブル ソートを学ぶ方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
バブル ソートは、コンピューター サイエンスの分野における比較的単純な並べ替えアルゴリズムです。
並べ替える必要がある要素を繰り返し訪問し、隣接する 2 つの要素を順番に比較し、要素の順序 (大きいものから小さいもの、最初の文字が A から Z など) が異なる場合は要素の位置を交換します。間違っている。
交換する必要がある隣接する要素がなくなるまで要素の訪問が繰り返され、並べ替えが完了します。
このアルゴリズムの名前は、炭酸飲料の二酸化炭素の泡が最終的には浮遊するのと同じように、より大きな要素が交換 (昇順または降順で配置) によってシーケンスの先頭にゆっくりと「浮遊」するという事実に由来しています。一番上にあるため、「バブルソート」という名前が付けられています。
理論だけ見ると少し混乱するかもしれませんが、問題はありません。次に、バブル ソートの比較と並べ替え方法を詳しく学びましょう~
並べ替えのアイデア
隣接する比較、小さいものから大きいものへ並べ替え、小さい場合は前に進みます
I はループ データを最初から最後まで走査することを表します
バブルの実装sorting
クラスの作成: BubbleSort.java
package cn.tedu.array;import java.util.Arrays;/**本类用来完成初心者は JAVA バブル ソートを学ぶ方法を学びます*/public class TestBubbleSort { public static void main(String[] args) { //1.创建一个无序的数组 int[] a = {27,96,73,25,21}; //2.调用method()完成排序 int[] newA = method(a); System.out.println("排序完毕:"+Arrays.toString(newA)); } public static int[] method(int[] a) { //1.外层循环,控制比较的轮数,假设有n个数,最多比较n-1次 //开始值:1 结束值:<= a.length-1 变化:++ //控制的是循环执行的次数,比如5个数,最多比较4轮,<= a.length-1,最多取到4,也就是[1,4]4次 for(int i = 1 ; i <= a.length-1 ; i++) { System.out.println("第"+i+"轮:"); //2.内层循环:相邻比较+互换位置 for(int j=0; j < a.length-i ; j++) { //相邻比较,a[j]代表的就是前一个元素,a[j+1]代表的就是后一个元素 if(a[j] > a[j+1]) { //交换数据 int t = a[j]; a[j] = a[j+1]; a[j+1] = t; //System.out.println("第"+(j+1)+"次比较交换后:"+Arrays.toString(a)); } } System.out.println("第"+i+"轮的结果:"+Arrays.toString(a)); } return a;//把排序好的数组a返回 }}
実際、既存の並べ替えを最適化することもできます:
最適化 1: 前回の並べ替えラウンドで生成された最大値後処理に関与する必要はありません 数ラウンドの比較の後、いくつかの値が生成されるため、比較に参加する必要はありません i ラウンドでは i 値が生成されるため、必要です - i
最適化 2: 使用する数量を設定する必要があります。現在の相互比較で要素の交換があったかどうかを確認します。交換が発生した場合は、注文が手配されていないことを意味します。フラグが true に変更され、次のラウンドの比較が実行されますが、現在のラウンドですべての要素が相互に比較され、位置が交換されていない場合は、順序がソートされたことを意味します。次の比較ラウンドは必要ありません。end メソッドを直接返すだけです
関連する無料学習の推奨事項: Java 基本チュートリアル
以上が初心者は JAVA バブル ソートを学ぶ方法を学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。