lvfish_hhu 2016-10-24 15:34 采纳率: 50%
浏览 1147

关于一个递归的运行时间计算

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)的表达形式
  • 写回答

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文件