java - 这个执行频率是怎么算的?
巴扎黑
巴扎黑 2017-04-18 09:52:50
[Java讨论组]

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

public class ThreeSum
{
    public static int count(int[]a)
    {
        // 统计和为0的元组数量
        int N = a.length;
        int cnt = 0;
        for (int i =0;i

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

        for (int i =0;i
巴扎黑
巴扎黑

全部回复(1)
高洛峰
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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号