Java 我试图实现两个排序数组的联接,但是输出都是错误的,下面的代码中应该做什么修改?
我在R(X,Y,Z)和S(Y,W)的基础上尝试联合R和S。如果两者的Y属性相同,则输出联合,但输出错误。主要的问题是在比较部分,但我无法找出它Java 我试图实现两个排序数组的联接,但是输出都是错误的,下面的代码中应该做什么修改?,java,arrays,union,Java,Arrays,Union,我在R(X,Y,Z)和S(Y,W)的基础上尝试联合R和S。如果两者的Y属性相同,则输出联合,但输出错误。主要的问题是在比较部分,但我无法找出它 public int [][]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5,}}; public int [][]S={{1,2},{4,5},{4,6},{8,9},}; public int[][]M=new int[5][4]; int[][]Output=ne
public int [][]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5,}};
public int [][]S={{1,2},{4,5},{4,6},{8,9},};
public int[][]M=new int[5][4];
int[][]Output=new int[7][8];
int[][]Disk=new int[10][8];
public void sort(){
int temp_R[][]=new int[7][3];
int temp_S[][]=new int[4][2];
for(int i=0;i<S.length;i++)
{
for(int j=i+1;j<S.length;j++)
{if(S[i][1]>S[j][0])
{for(int k=0;k<2;k++ )
{temp_S[i][k]=S[i][k];
S[i][k]=S[j][k];
S[j][k]=temp_S[i][k];
}}
else
continue;
}
}
System.out.println("Sorted array S");
for(int i=0;i<S.length;i++)
{for(int j=0;j<2;j++)
{if(j<1){System.out.print(S[i][j]);
System.out.print(",");
}
else{System.out.println(S[i][j]);
}
}
}
for(int i=0;i<R.length;i++)
{
for(int j=i+1;j<R.length;j++)
{if(R[i][0]>R[j][0])
{for(int k=0;k<3;k++ )
{temp_R[i][k]=R[i][k];
R[i][k]=R[j][k];
R[j][k]=temp_R[i][k];
}}
else
continue;
}
}
System.out.println("Sorted array R");
for(int i=0; i< R.length;i++)
{for(int j =0;j<3;j++)
{if(j<2){System.out.print(R[i][j]);
System.out.print(",");
}
else{System.out.println(R[i][j]);
}
}
}
// Moving S into memory
int def_mem_Size = 0;
for (int i =0; i<S.length; i++){
for (int k = 0; k < 5 ; k++){
if(S[i][0] == M[k][0] && S[i][1] == M[k][1]
){
M[k][3] = M[k][3] + 1;
break;
}
if(k == def_mem_Size){
for (int p =0 ; p<2 ;p++)
M[k][p] = S[i][p];
def_mem_Size++;
break;
}
}
}
System.out.println("Content of M");
for(int i=0; i< def_mem_Size;i++)
{for(int j =0;j<3;j++)
{if(j<2){System.out.print(M[i][j]);
System.out.print(",");
}
else{System.out.println(M[i][j]);
}
}
}
int count=0;
for(int i =0;i<R.length;i++)
{ int mh=0;
int location = -1;
for(int k=0;k<def_mem_Size;k++){
{if(R[i][1]==M[k][0])
{mh=1;
location=k;
break;
}
}
}
if(mh==1){
for(int h=0;h<2;h++)
Output[count][h]=M[location][h];
Output[count][2]=R[location][2];
count++;
}
}
for (int p =0; p< count; p++ ){
for (int l =0 ; l<4;l++)
System.out.print(Output[p][l]+" ");
System.out.println();
}
}
The Output is
Sorted array S
1,2
4,6
4,5
8,9
Sorted array R
1,2,3
2,4,6
2,3,4
3,4,5
3,4,5
4,7,8
8,9,1
Content of M
1,2,0
4,6,0
4,5,0
8,9,0
4 6 6 0
4 6 6 0
4 6 6 0
public int[]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5};
公共int[]S={{1,2},{4,5},{4,6},{8,9},};
公共整数[][]M=新整数[5][4];
int[][]输出=新int[7][8];
int[][]磁盘=新int[10][8];
公共无效排序(){
int temp_R[][]=新int[7][3];
int temp_S[][]=新int[4][2];
对于(inti=0;iSorry),但如果我将代码格式化为您的代码,我也无法理解。对于给定的R和S,联合应该是什么样子?