大O代表多循环

时间:2019-01-28 19:00:41

标签: java big-o

<template>
     <swiper-slide v-for="(photon,key) in $store.state.photons" :key='key'>
            <radial-gauge :value='photon.tempF'  
                 :options="photon.GaugeOptions.optionsLastTempF"></radial-gauge>
     </swiper-slide>
</template>

尝试获取此编码的BigO。努力了解循环如何相互作用。当我运行它时,我得到n = 25 count =898960。我一直尝试从O(n)^ 5 + 9到O(n)^ 5 / n

此问题的所有其他示例均未处理,第二个循环(I * I)中使用了I,第三个循环中使用了j

2 个答案:

答案 0 :(得分:4)

几乎总是使用sigma表示法来计算种类循环复杂度的最佳方法。

enter image description here

P.S。我没有在公式中写出必要的+1,因为它对Big-O表示法并不重要,并且不会影响5的最大功效。

答案 1 :(得分:2)

看起来像是O(n^5)

for (int i = 0; i < n; i++) // 0 to n -> O(n)
    for(int j = 0; j < i*i; j++) // 0 to n * n -> O(n^2) repeated n times -> O(n^3)
        for (int k = 0; k < j; k++) // 0 to n * n -> O (n^2) repeated O(n^3) times -> O(n^5)

在最佳情况下,三个嵌套循环将为您提供O(n^3),但由于第二个循环重复了(n^2)次,这将使其复杂度与第三个循环相同。因此,用简单的数学符号表示为:(n) * (n * n) * (n * n) = n^5