この記事の例では、JAVA の 4 つの基本的な並べ替え方法について説明します。皆さんの参考に共有してください。詳細は以下の通りです。
JAVA には、バブル方式、挿入方式、選択方式、SHELL ソート方式の 4 つの基本的なソート方式があり、選択方式はバブル方式を改良したものであり、SHELL ソート方式は挿入方式を改良したものです。基本的には要約できます 並べ替え方法は 2 種類あります: 挿入方法とバブル方法
1 挿入方法:
並べ替えられたコレクションを走査します。要素に到達するたびに、この要素が走査されてその前のすべての要素と比較され、並べ替え順序を満たす要素が 1 つずつ、その要素が表示される位置に移動されます。現在の範囲。交換は、隣接する移動と二重ループ制御によって実行されます。私の土地カードでは、すべてを特定の順序で配置する必要があります。
処理コードは次のとおりです。
public void sort(int[] data) { int temp; for(int i=1; i〈data.length; i++){ for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){ temp=date[j]; data[j]=data[j-1]; data[j-1]=temp; } } }
2 バブルメソッド:
これは比較的簡単で、1 回の走査後にセット内の最小 (最大) 要素が正しい位置に表示され、次回はその要素が次に小さい要素になります。 。 。この方法は、セット配布のさまざまな状況下でも基本的に同じ交換手数を持ち、最も遅いソートです。実装も二重ループ制御です。この選別方法は川を渡る龍に属し、極値を見つけることを意味しますが、川を渡る龍にも長兄、次兄などが存在するため、長兄と次兄しか選択できません。
処理コードは次のとおりです。
public static int [] maopao(int[] data) { int temp; for(int i=0; i〈data.length-1; i++){ for(int j=i+1; j〈data.length; j++){ if(data[i]〈data[j]){ temp=data[i]; data[i]=data[j]; data[j]=temp; } } } return data;
3 つの選択方法:
このメソッドは、セットを走査することによって最小の (大きな) 要素の位置のみを記録します。ただし、バブリングと同様の位置のスワップ操作が実行されます。 、要素の位置のみが記録されます。走査ごとに実行される交換操作は 1 つだけです。このペアは、交換順序に時間がかかる要素に適しています。この並べ替え方法は、最初に極端なデータを記憶し、それが自分よりも少し極端な場合にのみ処理する必要があるバブル方法とは異なり、次にそれを処理します。メソッドのみその範囲内の最も極端なデータを処理します。
public static void xuanze(int[] data) { int temp; for (int i = 0; i 〈 data.length; i++) { int lowIndex = i; for (int j = data.length - 1; j 〉 i; j--) { if (data[j] 〉 data[lowIndex]) { lowIndex = j; } } temp=data[i]; data[i]=data[lowIndex]; data[lowIndex]=temp; } }
4 つのシェルソーティング:
これは、ソートの特定の基準に従ってセット要素をグループに分割することを考慮したもので、最初に各グループがローカル スコープ内で基本的な順序で配置され、最後にすべての要素が一度ソートされます。挿入ソート。
public void sort(int[] data) { for(int i=data.length/2; i〉2; i/=2){ for(int j=0; j〈i; j++){ insertSort(data,j,i); } } insertSort(data,0,1); } private void insertSort(int[] data, int start, int inc) { int temp; for(int i=start+inc; i〈data.length; i+=inc){ for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){ temp=data[j]; data[j]=data[j-inc] data[j-inc]=temp; } } }
この記事が皆さんの Java プログラミング設計に役立つことを願っています。