查找差异接近零的相邻元素之间差异的算法

时间:2016-10-23 16:41:30

标签: algorithm data-structures

有一个排序数组的n个元素(正面和负面)我们必须找到每对元素之间的差异是(相邻)元素之间的差异有索引(0,1 1,2 2,3等等) -1 n)并找出哪个差异接近于零。

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

这里1是接近0的差异。

条件:没有发现每对之间的差异不会遍历整个数组

我已经得到了但没有条件

1 个答案:

答案 0 :(得分: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()
    }