计数反转 - 字符数组不想交换?

时间:2016-05-11 13:12:57

标签: java arrays sorting

我试图在排列中计算倒数,为了做到这一点,我必须进行交换。关键是一个char数组必须看起来像B,我试图使用像bubblesort机制这样的东西,但是交换根本不起作用而且我不知道为什么,这里是一个代码:

char[] john = {'A', 'A', 'C', 'B'};
    char[] marg = {'B', 'A', 'C', 'A'};

    for(int i=0; i<john.length; i++){
        for(int j=i+1; j<john.length; j++){                 
                if(marg[i]==john[j]){
                    char temp = john[j];
                    john[j] = john[j-1];
                    john[j-1] = temp;
                    counter++;
                }                                       
        }
    }

在那个循环后,john数组看起来和以前完全一样。

我想将char数组john转换为marg(计算所有交换),因此对于此示例,计数器应该具有值4.

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为您应该将john[j]john[i]交换,而不是john[j]john[j-1]。目前,您将john的最后两个元素交换两次,从而获得输入结果。