两个元素之间的最大差异

时间:2013-04-05 12:13:24

标签: c arrays algorithm

给定一个整数数组,我必须找出任何两个元素之间的最大差异,这样在数组中较小的数字后出现较大的数字。我使用了一个简单的方法,并采用了遇到的最小数量的差异通过保持两件事的轨迹

1.最大差异

2.到目前为止访问的最少数量。

    int min_element=arr[0];
    int diff=arr[1]-arr[0];
    for(i=1;i<n;i++)
    {
        if(arr[i]-min_element>diff)
            diff=arr[i]-min_element;
        if(arr[i]<min_element)
            min_element=arr[i];
    }
    return diff;

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:3)

目前,您的算法是最优的,直到恒定因子。

读取n整数数组需Ω(n)。你的算法是O(n),所以你很好。