这个执行频率是怎么算?

转载 2016年08月31日 10:42:11

读segmentfault,看到一段有关于算法分析的代码,带着注释:

public class ThreeSum
{
    public static int count(int[]a)
    {
        // 统计和为0的元组数量
        int N = a.length;
        int cnt = 0;
        for (int i =0;i<n;i++)    //1
            for(int j=i+1;k<n;j++)  //执行频率N
                for(int k =j+1;k<n;k++) //执行频率略等于n^2/2
                    if(a[i]+a[j]+a[k]==0)//执行频率略等于n^3/6
                        cnt++;
        return cnt;            
    }
    public static void main(String[]args)
    {
        int [] a = In.readInts(args[0]);
        StdOut.println(count(a));
    }
}

代码干的事情就是获取一组数字然后去找三个和为0的元组数量。想问的是这个执行频率是怎么计算的?

for (int i =0;i<n;i++)    //1
            for(int j=i+1;j<n;j++)  //执行频率N
                for(int k =j+1;k<n;k++) //执行频率略等于n^2/2
      

你可以这样来看,如下:
n=1,第一个for循环执行1次,第二个for循环执行0次,第三个for循环不执行,共执行1次。
n=2,第一个for循环执行2次,第二个for循环执行1次,第三个for循环不执行,共执行3次。
n=3,第一个for循环执行3次,第二个for循环执行2次,第三个for循环执行1次,共执行6次。
.....
依次类推:
你看这个就是前n项和的求和公式嘛:(1+n)*n/2 = n^2/2

这注释应该是从外到内求值计算.

for(i=0; i<n; i++)//执行1次,指该循环执行一次
{//循环体内执行n次
}

定理1:
前n项和


定理2:


推演通用公式:

for (int i =0;i<n;i++)    //1指循环体执行一次
    for(int j=i+1;k<n;j++)  //N指该语句执行N次
        for(int k =j+1;k<n;k++) //n^2/2:前N项和的定理1
            if(a[i]+a[j]+a[k]==0)//n^3/6:1/2(n^2)中的n^2的前n项和为n^3/3再乘以1/2
                cnt++;

https://segmentfault.com/q/1010000006758450

齿轮转速比和啮合频率

平行轴齿轮传动比(定轴系)i=f2/f1=z1/z2       f1:输入轴转频    f2:输出轴转频    z1:输入轴齿数  z2:输出轴齿数 fm=f1*z1=f2*z2          ...
  • wy2ysh
  • wy2ysh
  • 2016年03月29日 13:21
  • 3412

定时器的输出比较模式产生的PWM波的频率计算

定时器的输出比较模式产生的PWM波的频率计算的公式:72M/((2*(arr+1))*(psc+1) )比如设置: PWM_Init(1000-1,72-1); (PWM_Init(arr,p...
  • ambizxzh
  • ambizxzh
  • 2017年08月10日 00:44
  • 253

查询数据库sql执行的频率,以便设计出更好的数据库

1、查询数据库的Select,Insert,Update,Delete执行的频率,以便于设计更好的表的存储引擎和平时哪些sql语句执行的最多.       show [ session | globa...
  • zbw18297786698
  • zbw18297786698
  • 2016年03月31日 20:47
  • 467

MySql(27)------如何了解数据库各种sql的执行频率

对于sql优化时,首要的一步就是要分析一下,平台sql各种类型的执行频率。 通过SHOW [session|global] STATUS LIKE 'Com_%';查看各种sql的执行频率。 默认...
  • yhl_jxy
  • yhl_jxy
  • 2016年09月19日 09:35
  • 1636

常见对象_你来到这个世界多少天案例

package cn.itcast_05; import java.text.ParseException; import java.text.SimpleDateFormat; import ja...
  • L1585931143
  • L1585931143
  • 2016年12月10日 00:32
  • 504

你来到这世界多少天了!

package cn.itcast; import java.text.ParseException; import java.text.SimpleDateFormat; import java....
  • A_fatty
  • A_fatty
  • 2017年04月11日 20:31
  • 502

关于时钟频率的设置

OSC是用无源晶振,EXT是用有源晶振或外部时钟2440的12M是Oscillator 是有源的呀!2440的12M是Oscillator Crystal 无源晶体Oscillator 有源晶体(里面...
  • reckhou
  • reckhou
  • 2011年04月24日 11:29
  • 2460

spss频率分析-分类变量频率分析

频率分析主要通过频数分布表、条形图、直方图,以及集中趋势和离散趋势的各种统计量来描述数据分布特征,以便我们对数据的分布特征形成初步的认识,才能发现隐含在数据背后的信息,为后续数据分析提供了方向和依据。...
  • yaner0210
  • yaner0210
  • 2016年11月20日 21:55
  • 1510

PWM的周期和占空比是如何计算

4、脉宽调节模式    PWM意为脉冲宽度调制,可用于调整输出直流平均电压,对于矩形波而言,输出平均压等于峰值电压×占空比,占空比是一个脉冲周期内高电平时间与周期的比值,例如,峰值电压等于5V,占空...
  • u012252959
  • u012252959
  • 2017年07月23日 20:37
  • 1447

流量描述统计及频率分布(R版)

本篇文章通过常用的统计分析方法和图表发现流量数据中的规律和特征。主要使用的分析工具是R。(说明:本篇文章还有另一个使用Python版本)下面将分别解释每一种统计方法的结果以及这些统计方法在R中的实现方...
  • czp11210
  • czp11210
  • 2016年04月15日 14:41
  • 734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:这个执行频率是怎么算?
举报原因:
原因补充:

(最多只允许输入30个字)