2016-10-23 7 views
0

n個の要素(正と負の両方)のソートされた配列があります。各要素のペアの差異は(隣接する)インデックス(0 1、1 2、2 3、···n-1 n)を計算し、どの差がゼロに近いかを見つける。差がゼロに近い隣接要素間の差を求めるアルゴリズム

例:-56 -57 -46 -43 -33 -25 -24 -12 -10 1 3 6 7 8 9 56 57 68 78

ここ

1である差分近い0

は条件:それぞれ、すべてのペアの違いを見つけることなく、アレイ全体

を横断していない私はそれを持っているが、条件なしで

+0

0-1,1-2,2,3などを比較すると、すでにすべてのペア(0-2,0-3など)を比較していない場合は、あなたのコードを表示してください、それはおそらくすでに正しいでしょう。 – pid

答えて

0

はインデックスii + 1でそれらにアクセスすることで、直線的にペアをスキャン:

best = ABS(data[0] - data[1]); 
for (i = 1; i < data.length - 2; i++) 
{ 
    d = ABS(data[i] - data[i + 1]); 
    if (d < best) 
    { 
     best = d; 
    } 
} 

早くfor()から抜け出したいかもしれませんが、それは依存しています。それはコストがあります。

if (best == 0) 
    { 
     break; // for() 
    } 
関連する問題