ホームページ  >  記事  >  Java  >  選択ソートとバブルソートの違い

選択ソートとバブルソートの違い

(*-*)浩
(*-*)浩オリジナル
2019-06-05 09:58:126602ブラウズ

バブル ソート:
バブル ソート (BubbleSort) の基本概念は、2 つの隣接する数値を順番に比較し、小数点を前に、大きな数値を後ろに置きます。つまり、最初のパスでは、まず最初と 2 番目の数値を比較し、小数を最初に、大きい数値を最後に置きます。

選択ソートとバブルソートの違い

次に、2 番目の数値と 3 番目の数値を比較し、小数点を前に、大きい数値を後ろに置き、最後の 2 つの数値が比較されるまでこの作業を続けます。 、小数点は前に配置され、大きな数字は後ろに配置されます。これで最初の旅行が終了し、最大数が最後に残ります。 2 番目のパスでは、引き続き最初の数値ペアから比較を開始します (2 番目の数値と 3 番目の数値の交換により、最初の数値が 2 番目の数値より小さくなくなっている可能性があるため)、小数点を入力します。番号が再生された後、最後から 2 番目の番号まで比較が続けられます (最後から 1 番目の位置がすでに最大です)。 2 回目のパスでは、最後から 2 番目の位置で新しい最大数が取得されます (実際には、シーケンス全体で 2 番目に大きい数)。このようにして、最終的に並べ替えが完了するまで上記のプロセスを繰り返します。 (推奨学習: Java ビデオ チュートリアル )

選択の並べ替え:
初回は添字 0 から始まり、添字 0 が付いた番号と比較します。次の n-1 個の値; 最小値または最大値を検索し、添字 0 の位置に配置します; 2 番目の比較を添字 1 から開始します; 残りの最大値または最小値をクエリします; それを添字 1 の位置に配置します; など。並べ替えは完了しました

#例:

public class MaoPao {
	public static void main(String[] args) {
		int arr[]={23,12,46,24,87,65,18,14,43,434,65,76};
		int k=0;
		//冒泡排序
		for(int i=0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1;j++){
					if(arr[j]<arr[j+1]){
						int t=arr[j];
						arr[j]=arr[j+1];
						arr[j+1]=t;
						k++;
					}
				System.out.print("i="+i+"的第j="+j+"次交换\t");
				for(int d=0;d<arr.length;d++){
					System.out.print(arr[d]+"\t");
				}
				System.out.println();
			}
		}
		System.out.println("交换的次数为"+k);

		//选择排序
		int l=0;
		for(int i=0;i<arr.length-1;i++){
			for(int j=i+1;j<arr.length-1;j++){
				if(arr[i]<arr[j]){
					int t=arr[i];
					arr[i]=arr[j];
					arr[j]=t;
					l++;
				}
				System.out.print("i="+i+"的第j="+j+"次交换\t");
				for(int d=0;d<arr.length;d++){
					System.out.print(arr[d]+"\t");
				}
				System.out.println();
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"\t");
		}
		System.out.println("交换的次数为"+l);
	}
}

両者の違いを要約します

(1) バブル並べ替えは隣接する位置にある 2 つの数値を比較し、選択並べ替えは最大値または最小値を見つけるために比較します;

(2) バブル ソートの各ラウンド 比較後、位置が間違っている場合は、変更する必要があります。選択ソートの各ラウンドでは位置を変更するだけで済みます;

(3) バブル ソートは数値によって位置を見つけることであり、選択ソートは指定された位置での位置を見つけることです。番号;

その他の Java 関連の技術記事については、Java 開発チュートリアル 列にアクセスして学習してください。

以上が選択ソートとバブルソートの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。