algorithm - 算法的大O

标签 algorithm time-complexity big-o

我对这个算法有疑问,我很难理解它的复杂性

    While(input) {
            ...
            array to check 
            ...
           for (int i=0; i< arraysize; i++) {  
                creation first subarray; 
                creation second subarray; 
           } 

           for (int i=0; i < firstsubarraysize; i++) {
                 addinput to array;
                for( int j = 0; j < secondsubarraysize; j++) {
                   calculate array[j] * input;
             }
           }
   }// endwhile

那么,考虑输入一个 M 变量并且数组是 N,大 O 将是 O(m(nlogn)) 或 O(n2)? 子数组并不总是 n\2。 如果我不是很清楚,我深表歉意。

最佳答案

通常,对于每个嵌套循环,时间复杂度的大 O 中会有一个 N。

这里假设最外层的循环while运行了M次,那么里面有两个嵌套的for。所以总数是 O(M N^2)

关于algorithm - 算法的大O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761667/

相关文章:

algorithm - 对数函数的下界

algorithm - 找出两个随机选择的整数(从 n 个整数中)互质的概率

计算排列中有效 block 数的算法

标记三角形网格边的算法

arrays - 你如何计算算法的大O

c - 嵌套for循环的时间复杂度

java - maxOccuringDigit() 函数的时间和空间复杂度是多少?

algorithm - 矩阵的扫描元素

performance - 查找两个节点之间所有路径的高效算法

big-o - 什么是线性回归的 BigO?