ホームページ  >  記事  >  Java  >  Javaでバブルソートと選択ソートを実装するコードを記述する方法

Javaでバブルソートと選択ソートを実装するコードを記述する方法

王林
王林転載
2023-04-20 12:55:12655ブラウズ

1. バブル ソート

バブル ソートの基本的な考え方は、

ソート シーケンスを前から後ろへ (添字の小さい要素から) 開始)、隣接する要素の値を順番に比較し、逆の順序が見つかった場合はそれらを交換します。これにより、値の大きい要素が水中の泡のように徐々に前から後ろに移動し、徐々に上に上昇します。

ソート処理中、各要素は常にそれぞれの位置に近づいているため、比較中に
が交換されていない場合は、順序が正しいことを意味します。

#バブル ソート アルゴリズムのプロセスの図
#元の配列: 3、9、-1、10、20

ソートの最初のパス


#(1) 3, 9, -1, 10, 20 //隣接する要素の順序が逆の場合は、それらを入れ替えます


(2) 3、-1、9、10、20


(3) 3、-1、9、10、20


(4) 3 , -1, 9, 10, 20

2 番目の並べ替え


(1) -1, 3, 9, 10, 20 //Exchange


(2) -1、3、9、10、20

#(3) -1、3、9、10、20

# 3 パスソート

(1) -1, 3, 9, 10, 20

(2) -1, 3, 9, 10 、20


ソートの 4 番目のパス

(1) -1、3、9、10、20

サマリーバブリング ソートルール

(1) 配列サイズの合計を実行 - 1 つの大きなループ

(2) 各パスのソート回数は次のとおりです。徐々に減少


(3) 特定のソート パスで交換が発生しないことが判明した場合は、バブル ソートを早期に終了できます。これは最適化

import java.util.Arrays;
public class BubbleSort {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int arr[]= {3,9,-1,10,-2};
        //第i+1趟排序,将最大的数排在最后
        int temp=0;//临时变量
        for(int i=0;i<arr.length-1;i++) {//定义第几轮排序
       	 for(int j=0;j<arr.length-1-i;j++) {
       		 if(arr[j+1]<arr[j]) {
       		  temp=arr[j];
       		 arr[j]=arr[j+1];
       		 arr[j+1]=temp;
       		 }
       		 }
        System.out.println("输出第"+(i+1)+"趟排序的结果");
        System.out.println(Arrays.toString(arr));
        }
     
        }
	}

の実行結果です:

最初の並べ替え結果を出力します

[3, -1, 9, -2, 10]

最初の並べ替え結果を出力しますソート結果 2 回目のソート結果
#[-1, 3, -2, 9, 10]

3 回目のソート結果を出力
[-1, -2, 3, 9, 10]
4回目のソート結果を出力
[-2, -1, 3, 9, 10]


2. 選択ソート方法

ソートのアイデア:

##元の配列: 101, 34, 119, 1

最初のソートラウンド: 1, 34, 119, 101


2 回目の並べ替え: 1、34、119、101


3 回目の並べ替え: 1、34、101、119


手順:

1. 選択ソートの合計配列サイズは、ソート 1 ラウンドです。

2. ソートの各ラウンドは別のサイクルであり、サイクルのルール (コード)

2.1 まず、現在の数値が最小数値であると仮定します。

  • 2.2 次に、それを後続の各数値と比較します。現在の数値を再決定し、最小数値を再決定し、添字を取得します。

  • 2.3 配列の最後まで移動する場合、このラウンドの最小数値と添字

    ## を取得します。

  • #2.4 Exchange [コード内で会話を続ける]
  • import java.util.Arrays;
    public class QuickSort {
        public static void main(String[] args) {
           //int []arr={ 8,3,2,1,7,4,6,5};
           int [] arr={101,34,109,1};
           quicksort(arr);
        }
        public static void quicksort(int []arr){
            for(int j=0;j<arr.length-1;j++) {
                int minindex=j;//假定当前下标为最小值下标
                int minnumber=arr[j];//假定当前元素为最小值
                for (int i = 1+j; i < arr.length; i++) {
                    if (arr[i] < minnumber) {//若假定最小值并不是最小的
                        minnumber = arr[i];//重置minnumber
                        minindex = i;//重置minindex
                    }
                }
                //将最小值交换
                arr[minindex] = arr[j];
                arr[j] = minnumber;
                System.out.println("第"+(j+1)+"轮");
                System.out.println(Arrays.toString(arr));
            }
        }
    }

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

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