Java 从索引i到j(包括索引i)反转数组段
我想反转给定数组的一部分,从索引I到j(包括两者)。例如,如果它包含:Java 从索引i到j(包括索引i)反转数组段,java,arrays,Java,Arrays,我想反转给定数组的一部分,从索引I到j(包括两者)。例如,如果它包含: 1 2 3 4 5 6 7 经过反向处理后,应如下所示: 1 6 5 4 3 2 7 在这种情况下,i=1,j=5。 我的方法是: public static void sw(int[] l, int i,int j) { for(int z=i; z<((j-i)+1)/2;z++) { int y=((j-i)+1) - z - 1; int temp = l[z
1 2 3 4 5 6 7
经过反向处理后,应如下所示:
1 6 5 4 3 2 7
在这种情况下,i=1,j=5。
我的方法是:
public static void sw(int[] l, int i,int j)
{
for(int z=i; z<((j-i)+1)/2;z++)
{
int y=((j-i)+1) - z - 1;
int temp = l[z];
l[z] = l[y];
l[y] = temp;
}
}
可以完全删除“z”和“y”。它们太复杂,没有必要完成任务。您只需要增加“i”并减少“j”,直到
i请定义“某些情况”的输入及其输出。它具体不适用于哪些情况?它以什么方式不起作用?您的输出与预期的输出有什么不同?尝试采用较小的输入,如1 2 3 4 5,然后手动“运行”它。你会从中学到很多。
Case#1:
6 78 63 59 28 24 8 96 99
output is:
6 78 59 63 28 24 8 96 99
public static void sw(int[] l, int i,int j)
{
for(; i<=j;i++, j--)
{
int temp = l[i];
l[i] = l[j];
l[j] = temp;
}
}