バブル ソート (BubbleSort) の基本概念は、小数点を前に、大きい数を後ろに配置して、2 つの隣接する数値を順番に比較することです。つまり、最初のパスでは、まず最初と 2 番目の数値を比較し、小数を最初に、大きい数値を最後に置きます。次に、2 番目の数値と 3 番目の数値を比較し、小数を前に、大きな数値を後ろに置きます。最後の 2 つの数値を比較するまで同様に、小数を前に、大きな数値を後ろに置きます。これで最初の旅行が終了し、最大数が最後に残ります。 2 番目のパスでは、引き続き最初の数値ペアから比較を開始します (2 番目の数値と 3 番目の数値の交換により、最初の数値が 2 番目の数値より小さくなくなっている可能性があるため)、小数点を最初に置きます。 、および大きな数値を配置した後、最後から 2 番目の数値まで比較が継続されます (最後から 1 番目の位置がすでに最大になっています)。2 回目のパスの終了時に、新しい最大数値が取得されます。最後から 2 番目の位置 (実際には、シーケンス全体の最後から 2 番目の数値)。このようにして、最終的に並べ替えが完了するまで上記のプロセスを繰り返します。
次のようにコードをコピーします。
パブリッククラスPaixu {
public static void main(String[] args) {
int [] a = {2,6,4,5,1,7,3};
int i = 0;
int j = 0;
int n = 0;
for(i= 0;i<a.length-1;i++){
for(j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
n = a[j];
a[j] = a[j+1];
a[j+1] = n;
}
}
}
for ( i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
ストレート選択ソートも単純なソート方法です。その基本的な考え方は、最初に R[0] ~ R[n-1] から最小値を選択し、それを R[0] と交換してから最小値を選択することです。 R{1}~R[n-1] を 2 回実行し、R[1] と交換します....、 i回目はR[i-1]~R[n-1]から最小値を選択してR[i-1],...と交換、n-1回目はR[から最小値を選択n-2]~ R[n-1] から最小値を選択し、それを R[n-2] に交換し、合計 n-1 回渡すと、次のように小さい値から大きい値に並べられた順序列が得られます。ソートコード。
次のようにコードをコピーします。
パブリッククラスPaixu {
public static void main(String[] args) {
int [] a = {2,6,4,5,1,7,3};
int i = 0;
int j = 0;
int n = 0;
for(i= 0;i<a.length;i++){
for(j=i+1;j<a.length;j++){
if(a[i]>a[j]){
n = a[i];
a[j] = a[i];
a[i] = n;
}
}
}
for ( i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
例 2
次のようにコードをコピーします。
パッケージ cn.cqu.coce.xutao;
パブリック クラス selectsort {
public static void main(String args[]){
int a[]={34,56,3,234,767,89,0,324,1,32,54,89,8};
int b[]=new int[a.length];
System.arraycopy(a, 0, b, 0, a.length);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"/t");
}
System.out.println();
//ソートを選択
for(int i=0;i<a.length-1;i++){
int min=i;
for(int j=i+1;j<a.length;j++){
if(a[min]>a[j])
最小=j;
}
if(分!=i){
int temp=a[分];
a[分]=a[i];
a[i]=温度;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+"/t");
System.out.println();
//バブルソート
for(int i=0;i<b.length;i++){
for(int j=1;j<b.length-i;j++){
if(b[j-1]>b[j]){
int te=b[j];
b[j]=b[j-1];
b[j-1]=te;
}
}
}
for(int i=0;i<b.length;i++)
System.out.print(b[i]+"/t");
System.out.println();
}
}