0

このコードを書いたところ、2 つの配列を 1 つにマージして並べ替えたいのですが、多くのコードを変更しました。エラーはメソッド array_intil() にあると思いますが、見つかりません。それは...ありがとう

public class Test3 {
    public int [] array_erz(int[]A1,int[]A2){
        int []neu=new int[A1.length+A2.length];
        return neu;
    }
    public void swap(int[]values,int i,int k){
        int temp;
        temp=values[i];
        values[i]=values[k];
        values[k]=temp;


    }
    public int [] array_intil(int [] neu,int[]A1,int []A2){
        for (int i=0;i<A1.length;i++){
            neu[i]=A1[i];
        for (int k=A1.length;k<neu.length;k++){
            neu[k]=A2[i];
        }}

        return neu;

    }
    public int[] sort(int[] neu){
        for (int i=0;i<neu.length;i++){
            for (int k=neu.length-1;k>i;k--){
                if (neu[i]>neu[k]){
                    swap(neu,i,k);
                }
            }
        }
        return neu;
    }
    public static void main (String[]args){
        int [] A1={7,0,12,738};
        int []A2={14,105,2,13,404,1,15,130};
        Test3 t=new Test3();
        int [] A3=t.array_erz(A1, A2);
        t.array_intil(A3, A1, A2);
        t.sort(A3);
        for (int i=0;i<A3.length;i++){
            System.out.print(A3[i]+",");
        }




    }

}

コンソールの結果: 0,7,12,13,13,13,13,13,13,13,13,738,

4

2 に答える 2

1

A2 を何度も追加するネストされたループがありました。次の変更を試してください。

public int [] array_intil(int [] neu,int[]A1,int []A2){
    for (int i=0;i<A1.length;i++){
        neu[i]=A1[i];
    }
    for (int k=A1.length;k<neu.length;k++){
        neu[k]=A2[k-A1.length];
    }

    return neu;

}

また、常にタブで適切にフォーマットされたコードを維持してください。同じようにインデントされていたため、ネストされた for ループをほとんど見逃していました。

于 2013-09-05T08:33:53.617 に答える
0

array_intil メソッドに問題があります。あなたのプログラムでは、最初のループの繰り返しごとに2番目のforループが実行されます

以下のようにメソッドを変更します。

 public int [] array_intil(int [] neu,int[]A1,int []A2){
       int i=0;
        for (i=0;i<A1.length;i++){
            neu[i]=A1[i];
        }
        int m=0;
        for (i=A1.length;i<neu.length;i++){
            neu[i]=A2[m];
            m++;
        }
        return neu;
    }

Now correct/modify your sorting/swapping algo.
于 2013-09-05T08:52:58.400 に答える