Java 以下解决方案的时间复杂度?已经有人问过了,但我还是不明白指数部分!请解释

Java 以下解决方案的时间复杂度?已经有人问过了,但我还是不明白指数部分!请解释,java,time-complexity,Java,Time Complexity,下面的代码打印所有长度为k的字符串,其中字符按排序顺序排列。它通过生成长度为k的所有字符串,然后检查每个字符串是否已排序来实现这一点。它的运行时间是什么 公共静态int numChars=26; 公共静态无效打印字符串(剩余整数){ 打印字符串(剩余“”); } 公共静态void打印排序字符串(剩余整数,字符串前缀){ 如果(剩余==0){ if(isInOrder(前缀)){ System.out.println(前缀);//打印字符串 } }否则{ 对于(int i=0;i

下面的代码打印所有长度为k的字符串,其中字符按排序顺序排列。它通过生成长度为k的所有字符串,然后检查每个字符串是否已排序来实现这一点。它的运行时间是什么

公共静态int numChars=26;
公共静态无效打印字符串(剩余整数){
打印字符串(剩余“”);
}
公共静态void打印排序字符串(剩余整数,字符串前缀){
如果(剩余==0){
if(isInOrder(前缀)){
System.out.println(前缀);//打印字符串
}
}否则{
对于(int i=0;i当前){
返回false;
}
}
返回true;
}
公共静态字符(int i){
返回字符(((int)'a')+i);
}
公共静态void main(字符串[]args){
打印环(2);
}

如果生成每一个长度为k的字符串并丢弃那些不符合顺序的字符串,将浪费大量计算时间。如果只需要顺序字符串,则只生成那些.printSortedStrings(26);使代码可编译后,为我打印26次。这又能做什么呢?请检查下面的链接以供参考:参考您之前的问题。打印字符串的线性成本为k。若你们有两个k成本运算,你们等于O(2k),因为k在大O中仍然是线性的,所以它被写成O(k)。它不是您建议的k^2,因为它只为每个字符串打印一次,而不是为每个字符串打印k次。