public static long pow(long x, int n){
if(n == 0)
return 1;
if(n == 1)
return x;
if(n % 2 == 0)
return pow(x, n/2) * pow(x, n/2);
else
return pow(x * x, n/2) * x;
}
怎么计算这个方法的运行时间
类似于O(NlagN)的表达形式
关于一个递归的运行时间计算
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2016-10-24 15:34关注
运算时间取决于运行程序的机器,同一个程序,不同计算机运行时间不同。
但是可以计算下递归的运行次数,很简单,定义一个全局变量,然后再在函数内+1
public static count = 0;
public static long pow(long x, int n){
count++;
...
}
执行程序,最后输出count就是这个递归函数调用的次数,调用次数可以反映你程序的算法复杂度。解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
- ¥30 求解达问题(有红包)
- ¥15 请解包一个pak文件