私は擬似コードだ:このアルゴリズムは何をしていますか?
public class Test
{
public static void main (String[] args)
{
int A[] = {1,2,3,4,5,6,7,8,9};
int x = 0;
for (int i = 1; i < A.length; i++)
{
for (int j = i + 1; j < A.length; j++)
{
if (x < Math.abs(A[i] - A[j]))
{
x = Math.abs(A[i] - A[j]);
}
}
}
System.out.println(x);
}
}
出力は、コード内の配列と7だった:私はそれが何の見え方が実際のコードに変換したことを
Input: Array A with n (= length) >= 2
Output: x
x = 0;
for i = 1 to n do
for j = i+1 to n do
if x < |A[i] - A[j]| then
x = |A[i] - A[j]|;
end if
end for
end for
return x;
を。 私は別の配列(1から20)を使用していて、putputは18でした。 配列1-30、出力は28でした。 パターンは明らかですが、アルゴリズムは最後の配列値から3分の1を返します。または私は間違っていますか?
仮説を異なる入力でテストしようとしましたか? '[5,5,5,5]'? –
疑似コードはしばしば '1'でループを開始しますが、本当に意味するのは最初の項目です。だからループを '0'で始める – user
なぜ私は1に初期化されますか?これにより、配列の最初の要素が重要にならなくなります。 – LaneL