非常に長い配列を持ち、2つの要素のすべての可能な組み合わせの最小の違いを得なければなりません。配列内のすべての可能な要素の組み合わせの最小の差を得る
これは私のコードです:
[...]
int diff = 1000000; // a very big difference that i'm sure is too big
int tmpDiff; // swap
//Compare
for (size_t i = 0; i < N; i++) { // I try every combination of 2 elements of array
for (size_t j = i + 1; j < N; j++) { // don't repeat same elements
tmpDiff = abs(array[i] - array[j]); // get the difference
if (diff > tmpDiff) { // if it is smaller is the difference i need
diff = tmpDiff;
}
}
}
[...]
それは時間がかかりすぎます。どのようにパフォーマンスを最適化できますか?
効率的な並べ替えを使用して、隣接する要素を順番に比較するリストに進みます。 – dbush