Java初心者の階段――bubble sort(泡立ちランキング)
2063 ワード
Java初心者の階段――bubble sort(泡立ちランキング)
java初心者にとって、いくつかのよくある重要な方法と基本原理を学ぶことは非常に重要です。bubble sortとbinary search(二分検索)基本的には、各大手会社の筆記試験の内容は、手書きのソースコードを要求して、あなたの論理能力を考察します。本文は主にbbble sortに対して解説します。binary searchは次のブログに書いています。
bubble sort中国語の名前が泡で並べ替えられているのは、配列に対して順序付けを行う方法であり、通常は配列内の要素を小さいから大きいまで並べ替える方法であり、javaではsort方法を提供しています。実際のプログラミングではほとんど直接呼び出して、具体的な呼び出し方法は後文で示しています。以下ではbubble sortの原理を説明します。
泡の並べ替えの原理:泡の並べ替え、名前を考えて、水の中の泡のような並べ替えの方式で、次に私達は1つの整数の配列を定義します。
int[]arr={2,1,34,23,2,46}長さは6で、5に索引がついています。
この配列の整数は小さい時から大きい順に並べばいいと思います。まず、arr[0]を取ります。つまり、2番目から6番目の大きさと比較して、大きな数字を右に、小さな数を左に置くようにします。もちろん、それと比較する数字より小さいなら、比較を中止します。
第1ステップ:第1の数を取って2を順番に後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を中止し、(1)2と1を比較し、2>1、2と1を変換し、配列は{1,2,34,23,2,46}となる。(2)2は34と比較し、2<34、比較を停止する。
第二のステップ:第二の数を取って、新しい配列の後の数と順次比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を中止し、(1)1と2を比較し、(注意して、現在の配列は{1,2,34,23,2,46}である。)1<2は比較を停止する。
第3ステップ:第3の数34を取って、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を停止し、(1)34と23の比較、34>23、34、23のシフト、配列は{1,2,23,34,2,46}に変化する。34は46と比較し、34<46、比較を停止する。
第四ステップ:第四の数23を取って、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を停止し、(1)23と2を比較し、23>2と2をシフトし、配列は{1,2,23,34,46}となる。(2)23は34と比較し、23<34,比較を停止する。
第五ステップ:第五の数を取る2と、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置とは、以下の場合は比較を停止し、(1)2と23は比較し、2<23、比較を停止する。
第5ステップを完成すると、私たちの泡立ちはすでに完成しました。この原理の基本思想は比較と交換です。以下はjavaコードを使ってこの機能を実現します。
java初心者にとって、いくつかのよくある重要な方法と基本原理を学ぶことは非常に重要です。bubble sortとbinary search(二分検索)基本的には、各大手会社の筆記試験の内容は、手書きのソースコードを要求して、あなたの論理能力を考察します。本文は主にbbble sortに対して解説します。binary searchは次のブログに書いています。
bubble sort中国語の名前が泡で並べ替えられているのは、配列に対して順序付けを行う方法であり、通常は配列内の要素を小さいから大きいまで並べ替える方法であり、javaではsort方法を提供しています。実際のプログラミングではほとんど直接呼び出して、具体的な呼び出し方法は後文で示しています。以下ではbubble sortの原理を説明します。
泡の並べ替えの原理:泡の並べ替え、名前を考えて、水の中の泡のような並べ替えの方式で、次に私達は1つの整数の配列を定義します。
int[]arr={2,1,34,23,2,46}長さは6で、5に索引がついています。
この配列の整数は小さい時から大きい順に並べばいいと思います。まず、arr[0]を取ります。つまり、2番目から6番目の大きさと比較して、大きな数字を右に、小さな数を左に置くようにします。もちろん、それと比較する数字より小さいなら、比較を中止します。
第1ステップ:第1の数を取って2を順番に後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を中止し、(1)2と1を比較し、2>1、2と1を変換し、配列は{1,2,34,23,2,46}となる。(2)2は34と比較し、2<34、比較を停止する。
第二のステップ:第二の数を取って、新しい配列の後の数と順次比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を中止し、(1)1と2を比較し、(注意して、現在の配列は{1,2,34,23,2,46}である。)1<2は比較を停止する。
第3ステップ:第3の数34を取って、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を停止し、(1)34と23の比較、34>23、34、23のシフト、配列は{1,2,23,34,2,46}に変化する。34は46と比較し、34<46、比較を停止する。
第四ステップ:第四の数23を取って、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置と等しい場合は比較を停止し、(1)23と2を比較し、23>2と2をシフトし、配列は{1,2,23,34,46}となる。(2)23は34と比較し、23<34,比較を停止する。
第五ステップ:第五の数を取る2と、順次に新しい配列の後の数と比較し、比較された数より大きい場合、その交換位置とは、以下の場合は比較を停止し、(1)2と23は比較し、2<23、比較を停止する。
第5ステップを完成すると、私たちの泡立ちはすでに完成しました。この原理の基本思想は比較と交換です。以下はjavaコードを使ってこの機能を実現します。
class BubbleSort{
public static void main(String[ ] args){
//
int [ ] arr={2,1,34,23,2,46};
// bubbleSort , arr
bubbleSort(arr);
}
// , , 。
static void bubbleSort(int [ ] arr1){
//
for(int i=0;i < arr1.length-1;i++){
/*
, 。
jarr[j+1]){
//
int box=arr1[j];
arr1[j]=arr1[j+1];
arr1[j+1]=box;
}
}
}
// for 。
for(int a:arr1){
System.out.print(a+” ”);
}
}
}