相关疑难解决方法(0)

用于处理列表的所有连续子序列的朴素代码的算法复杂度:n ^ 2或n ^ 3?

我正在研究测试并发现了这个问题:

我无法确定复杂性,我认为它是O(n 2)或O(n 3)而我倾向于O(n 3).
有人能告诉我它是什么以及为什么?

我认为它是O(n 2)是因为在j循环中,j = i它给出了一个三角形的形状,然后k循环从i + 1j,我认为是三角形的另一半.

public static int what(int[] arr)
{
    int m = arr[0];
    for (int i=0; i<arr.length; i++)
    {
        for (int j=i; j<arr.length;j++)
        {
            int s = arr[i];
            for (int k=i+1; k<=j; k++)
             s += arr[k];
            if (s > m)
             m = s;
        }
    }
    return m;
}
Run Code Online (Sandbox Code Playgroud)

如果你能告诉我它的作用吗?

我想它返回正整数的加法或数组中的最大整数.
但对于像{99, -3, 0, 1}它这样的数组返回99 …

java algorithm big-o time-complexity

29
推荐指数
3
解决办法
2286
查看次数

测试C++应用程序的性能

我正试图找到一种方法来测试一块C++代码运行需要多长时间.我用它来比较代码与不同的算法和不同的语言,所以理想情况下我想要一个秒/毫秒的时间.在Java中我使用的是这样的东西:

long startTime = System.currentTimeMillis();

function();

long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime; 
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来获得像C++那样的准确时间(或者我应该使用其他一些基准测试手段)?

c++ testing performance

6
推荐指数
4
解决办法
2万
查看次数

标签 统计

algorithm ×1

big-o ×1

c++ ×1

java ×1

performance ×1

testing ×1

time-complexity ×1