这里的list是数组的名称,我有一个交换方法,所以想用它来做一个数组字符串的反向方法。我有一个swap方法,所以想用它来做一个数组字符串的反向方法,所以如果数组中的元素是1,2,3,4,它们应该变成4,3,2,1。我不明白我的逻辑中的缺陷在哪里,因为我目前的代码中只有第一个和最后一个元素被交换了。
private void swap(int i, int j)
{
int temp;
temp = list[i];
list[i] = list[j];
list[j] = temp;
}
public void reverse()
{
int y=1;
for(int x =0; x<list.length-1; x++)
{
swap(x,list.length-y);
++y;
}
}
int y=1;
// add and/or modify code to complete the method
for(int x =0; x<list.length-1; x++) //wrong, should only loop to len/2
{
swap(x,list.length-y);
++y;
}
正确的代码应该是。
int mid = (list.length - 1) / 2;
int len = list.length;
for (int i = 0; i <= mid; i++) {
swap(i, len - 1 - i);
}