我试图在排列中计算倒数,为了做到这一点,我必须进行交换。关键是一个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.
我做错了什么?
答案 0 :(得分:1)
我认为您应该将john[j]
与john[i]
交换,而不是john[j]
与john[j-1]
。目前,您将john的最后两个元素交换两次,从而获得输入结果。