永发信息网

计算复杂度是怎么计算的啊,我经常见到O()这个函数,但是不知道怎么去定义和计算他。

答案:1  悬赏:0  手机版
解决时间 2021-03-02 05:16
计算复杂度是怎么计算的啊,我经常见到O()这个函数,但是不知道怎么去定义和计算他。
最佳答案
常用时间复杂度和空间复杂度。
时间复杂度,指的是在循环等算法中,最基本的一条语句的执行次数。
如for(int i =1;i<=n;i++)
m++;//假设m是一个可以自增1的变量
上述基本语句就是m++,可以看到for循环将进入n次,每次都执行一下m++,所以说这个小算法的时间复杂度就是O(n)。
空间复杂度,指的是算法在真个执行过程中需要使用的存储单元数。

for(int i = 1;i<=n;i++)
{
int temp; //定义一个临时变量,用于a、b的交换
temp = a;
a = b;
b = temp;
}
上述for循环进入n次,但每次都要开辟一个内存单元给temp使用,虽然n次循环开辟了n次这样的存储单元,但每一次使用后都会释放掉,也就是说这个算法只需要系统为它提供一个内存单元就够了。
所以空间复杂度为O(1)。追问好像和我想的不一样,我在通信类的书上看到FFT和IFFT的计算复杂度是O(Llog2L),请问这个怎么理解?追答不同的算法复杂度计算方法是不一样的,这里我只是举了个最简单的例子。
我学的是计算机,在数据结构上有二叉树、堆之类的算法,有的情况下复杂度确实会达到O(nlog2n)
时间复杂度由小到大:O(1)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯