並び換えるクラスについて
小さい順に並べかえをテストするクラスが下のように指定されている場合、
小さい順に並べかえ処理をするクラスはどのようにすればいいのでしょう?
class SortTest{
public static void main(String[] args){
int[] arri = {3, 2, 8, 7, 4, 6, 1, 0, 5, 9};
System.out.println();
System.out.print("\tソート前:");
arrayPrintln(arri);
tool.Sort.ascendBubble(arri); // クラスメソッドに処理を委譲
System.out.print("\tソート後:");
arrayPrintln(arri);
System.out.println();
double[] arrd = {3.3, 2.2, 8.8, 7.7, 4.4, 6.6, 1.1, 0.0, 5.5, 9.9};
System.out.println();
System.out.print("\tソート前:");
arrayPrintln(arrd);
tool.Sort.ascendBubble(arrd); // クラスメソッドに処理を委譲
System.out.print("\tソート後:");
arrayPrintln(arrd);
System.out.println();
}
//配列の値を出力するメソッド*******************
public static void arrayPrintln(int[] arr){
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println("");
}
public static void arrayPrintln(double[] arr){
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println("");
}
}
初心者な私がggったりして作成したやつが↓です。
class Sort{
public ascendBubble(int[] arri);
public ascendBubble(double[] arri);
//public void getArri(){
//public void getArri(String[] arri){
public void getArri(int[] arri){
for(int i=0;i<arri.length-1;i++){
for(int j=arri.length-1;j>i;j--){
if(arri[j]<arri[j-1]){
int t=arri[j];
arri[j]=arri[j-1];
arri[j-1]=t;
}
}
}
}
public void getArri(double[] arri){
for(int i=0;i<arri.length-1;i++){
for(int j=arri.length-1;j>i;j--){
if(arri[j]<arri[j-1]){
int t=arri[j];
arri[j]=arri[j-1];
arri[j-1]=t;
}
}
}
}
}
わかりずらいかと思いますが、
アドバイスの方よろしくお願いします。
お礼
あ、こんな簡単なミスに気づきませんでした>< こんなことで質問してごめんなさい