【问题标题】:Calculate best-case, average-case and worst-cae algorithm complexity计算最佳情况、平均情况和最坏情况的算法复杂度
【发布时间】:2019-05-15 23:36:49
【问题描述】:

我有以下算法,我需要计算它的最佳情况、最坏情况和平均情况复杂度:

for (i=0; i<N; i++){
    for (j=0; j<N; j++){
        if  ((tab[i][j] % 2 != 0) && (tab[j][i] % 2 != 0)){
            tab[i][i] += tab [i][j] + tab[j][i];
        }
    }
}

问题是 - 我计算 ifs(作为一个或两个 - 因为里面有两个操作)还是只计算对齐? 我猜复杂度是 n^2,但我不知道如何计算最佳情况、最坏情况和平均情况的复杂度。

【问题讨论】:

    标签: algorithm complexity-theory


    【解决方案1】:

    每种情况下的复杂度都是 N^2。实际操作数介于 (cN^2, CN^2) 之间,其中 c, C 是常数,c

    【讨论】:

      【解决方案2】:

      复杂性是渐近的。因此,O(c*n) 被视为 O(n),其中 c 是一个常数。如果要计算实际的操作次数,那么例如在 i 循环中:

      i 的初始化是一个操作。

      i

      i++ 递增操作发生 N 次。

      所以,循环本身有 2*N+2 次操作加上循环中的操作 n 次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-21
        • 1970-01-01
        • 2021-09-27
        • 2019-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        相关资源
        最近更新 更多