JAVAソートアルゴリズムのバブルソートを実現
バブルソート
配列の各要素を最初から最後まで順に比較する隣接する2つの要素は、1ラウンド目の比較ソートを経て、最大(または最小)の要素を並べ、残りの要素を同じ方法で1つずつ比較すると、所望の順序が得られます.nの要素があれば、全部でn-1ラウンドの比較を行い、iラウンド目はj=n-i回の比較を行うことがわかります.(例えば:5要素がある場合は5-1ラウンドの比較を行い、3ラウンド目は5-3回の比較を行う)
次に、具体的な実装(小さいものから大きいものまで、大きいものから小さいものまで)について説明する.コードif(arr[i]>arr[j])をif(arr[i]JAVAコード:
配列の各要素を最初から最後まで順に比較する隣接する2つの要素は、1ラウンド目の比較ソートを経て、最大(または最小)の要素を並べ、残りの要素を同じ方法で1つずつ比較すると、所望の順序が得られます.nの要素があれば、全部でn-1ラウンドの比較を行い、iラウンド目はj=n-i回の比較を行うことがわかります.(例えば:5要素がある場合は5-1ラウンドの比較を行い、3ラウンド目は5-3回の比較を行う)
次に、具体的な実装(小さいものから大きいものまで、大きいものから小さいものまで)について説明する.コードif(arr[i]>arr[j])をif(arr[i]
public class Maopao {
public void sort(int[] arr){
System.out.println(" :");
for(int i = 0; i < arr.length; i++ ){
System.out.printf("%3s", arr[i]);
}
System.out.println();
System.out.println("----------------------------------");
for(int i = 0; i < arr.length; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
System.out.println(" "+(i+1)+" :");
for(int k = 0; k < arr.length; k++){
System.out.printf("%3s", arr[k]);
}
System.out.println();
}
System.out.println();
System.out.println("----------------------------------");
System.out.println(" :");
for(int i = 0; i < arr.length; i++){
System.out.printf("%3s", arr[i]);
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] a = {10, 32, 1, 9, 5,3, 7, 12, 0, 4,4, 3};
Maopao mp = new Maopao();
mp.sort(a);
}
}