求穷举算法的时间复杂度和空间发杂度怎样计算,需要计算的过程。麻烦做的来的大虾们帮忙呀!谢谢了!
2个回答
展开全部
对于一些简单的程序,时间复杂度一般就是指你程序里面执行最多的语句的次数。
比如你的程序里面就一个for循环, 例如 for(int i=0;i<10;i++) sum+=i;
那么这个程序的时间复杂度就是 O(n) ,一般不写成O(10) 这些具体的数字。
如果上面的for循环里再嵌套一个for循环,那么就是O(n2) ,n2是指n的平方。
这种是最简单的情况,另外一些比较常见的又没这么简单的就是数据结构中树的操作问题,这就不说了。
空间复杂度的判断一般要简单点,因为你可以根据你自己使用的变量来大致判断。
比如你的整个程序就一个或者几个变量,空间复杂度就是O(1),当然这里的 几个 的意思要复杂一点,视情况不同可能不同。
比如说你的程序用到了一个数组,虽然是几个单元,但是因为数组的使用一般是与程序的数据量有关,所以这种情况复杂度就是O(n)。
总的来说,复杂度的判断比较抽象,它本身就是一个大致的估计,多看一下,就能明白。
还有问题可以百度hi我
比如你的程序里面就一个for循环, 例如 for(int i=0;i<10;i++) sum+=i;
那么这个程序的时间复杂度就是 O(n) ,一般不写成O(10) 这些具体的数字。
如果上面的for循环里再嵌套一个for循环,那么就是O(n2) ,n2是指n的平方。
这种是最简单的情况,另外一些比较常见的又没这么简单的就是数据结构中树的操作问题,这就不说了。
空间复杂度的判断一般要简单点,因为你可以根据你自己使用的变量来大致判断。
比如你的整个程序就一个或者几个变量,空间复杂度就是O(1),当然这里的 几个 的意思要复杂一点,视情况不同可能不同。
比如说你的程序用到了一个数组,虽然是几个单元,但是因为数组的使用一般是与程序的数据量有关,所以这种情况复杂度就是O(n)。
总的来说,复杂度的判断比较抽象,它本身就是一个大致的估计,多看一下,就能明白。
还有问题可以百度hi我
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询