创建一个反转方法,使元素在数组中反转。

问题描述 投票:-1回答:2

这里的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;
        }
    }
java
2个回答
1
投票
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);
}

© www.soinside.com 2019 - 2024. All rights reserved.