並び換えるクラスについて
小さい順に並べかえをテストするクラスが下のように指定されている場合、
小さい順に並べかえ処理をするクラスはどのようにすればいいのでしょう?
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;
}
}
}
}
}
わかりずらいかと思いますが、
アドバイスの方よろしくお願いします。
お礼
Ceren様 ご回答ありがとうございます。 なにせ外人様がドキュメントもなしに作ったものの上JAVAも初めてで… とりあえずSystem.out.close()をgrepしたのですが発見できませんでした。 どうしても動作しない関数があったもので、とりあえずどこまで実行されているかを手軽に確認したかったのでSystem.out.print()で記入していたのですが原因がつかめないとなるとファイル出力するしかないでしょうか