Java (c^k)的大O表示法

Java (c^k)的大O表示法,java,big-o,time-complexity,Java,Big O,Time Complexity,下面的代码给了我一个O(n)。如何为时间复杂度为O(c^k)的循环编写代码 不知道你在问什么,但是你可以通过简单地摆脱重复的递归(不是递归地计算两次相同的东西),很明显地修改这段代码并赢得很多 以这种方式编写将允许您编写while循环而不是递归。O(c^k)-指数时间复杂度算法是,例如,蛮力搜索和旅行商问题 我给你举一个暴力搜索的例子。如果您有一组长度为c,密码长度为k。那么你需要一段时间来破解密码。看看这个问题的答案:如果(y%2==0){int res=power(x,y/2);return

下面的代码给了我一个O(n)。如何为时间复杂度为O(c^k)的循环编写代码


不知道你在问什么,但是你可以通过简单地摆脱重复的递归(不是递归地计算两次相同的东西),很明显地修改这段代码并赢得很多

以这种方式编写将允许您编写while循环而不是递归。

O(c^k)
-指数时间复杂度算法是,例如,蛮力搜索和旅行商问题


我给你举一个暴力搜索的例子。如果您有一组长度为
c
,密码长度为
k
。那么你需要一段时间来破解密码。

看看这个问题的答案:如果(y%2==0){int res=power(x,y/2);return res*res;}这会给你一个O(c^k)吗?你的目标是使算法更复杂吗?为什么需要指数时间复杂度?public void run(int n){System.out.println(power(3,n));}public int power(int c,int n){int result=1;for(int i=0;iint power(int x, unsigned int y) { if( y == 0) return 1; else if (y%2 == 0) return power(x, y/2)*power(x, y/2); else return x*power(x, y/2)*power(x, y/2); }
if (y%2 == 0) {
    int res = power(x, y/2);    
    return res * res;
}