Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定时间复杂度是O(m+;n)还是O(Math.max(m,n))_Java_Performance_Time_Time Complexity_Space Complexity - Fatal编程技术网

Java 如何确定时间复杂度是O(m+;n)还是O(Math.max(m,n))

Java 如何确定时间复杂度是O(m+;n)还是O(Math.max(m,n)),java,performance,time,time-complexity,space-complexity,Java,Performance,Time,Time Complexity,Space Complexity,我已经看过这段代码了,但是我很难理解它是O(m+n)而不是O(Math.max(m,n))。还是O(m+n)在O(Math.max(m,n))之下 int i = 0, j = 0, res = 0; while (i < houses.length) { while (j < heaters.length - 1 && Math.abs(heaters[j + 1] - houses[i]) <= Math.a

我已经看过这段代码了,但是我很难理解它是O(m+n)而不是O(Math.max(m,n))。还是O(m+n)在O(Math.max(m,n))之下

 int i = 0, j = 0, res = 0;
    while (i < houses.length) {
        while (j < heaters.length - 1
            && Math.abs(heaters[j + 1] - houses[i]) <= Math.abs(heaters[j] - houses[i])) {
            j++;
        }
        res = Math.max(res, Math.abs(heaters[j] - houses[i]));
        i++;
    }
inti=0,j=0,res=0;
而(i&&abs(加热器[j+1]-houses[i])正如您已经猜到的,在大O符号下,两者都是相同的

这两个函数,
m+n
max(m,n)
都是集合的元素
O(m+n)=O(max(m,n)


让我们来计算一下:

m+n=0
已经)

因此这两个函数都被另一个函数(加上一个常数因子)限定,因此
O(m+n)
O(max(m,n))
,集合是相等的

以下是形式(一维)定义(来源):


直觉上,这也是有意义的,因为这两个函数只意味着两个变量的线性增长


[…]导致O(n)总体。O(n+logn)未被提及[…]

我不确定这是否是一个问题。请注意,这两个集合同样与
n(更简单地说,
m+n)相同