我有一个很长很长阵列和我得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